2015-03-25 3 views
6

Я установил JBoss Developer Studio, и вы можете создать WAR-файл с помощью «проекта правой мыши> Экспорт> WAR-файла», но я хочу экспортировать свой проект в WAR-файл с помощью командной строки.Как создать файл WAR с помощью командной строки?

У меня установлен maven, который является одним из требований Studio, и я прочитал, что могу генерировать WAR-файл с использованием maven, но мне нужен файл pom.xml. Когда я просматривал свою рабочую область и проект, pom.xml отсутствовал. Мне может понадобиться вручную создать pom.xml, но я не уверен, как это сделать.

Мой дерево каталогов для моего проекта заключается в следующем:

Siesta 
├── build 
│   └── classes 
├── src 
└── WebContent 
    ├── extjs 
    ├── extjs-4.2.0 
    ├── extjs-4.2.2 
    ├── index.jsp 
    ├── META-INF 
    ├── siesta 
    ├── tests 
    └── WEB-INF 

Как создать файл WAR для моей Maven/JBoss проекта с помощью командной строки? Я использую Linux и предпочитаю не создавать файл pom.xml, но если нет другого пути, я буду использовать файл xml для создания военного файла.

Edit:

Так фляга путь, чтобы создать архив войны. Я написал небольшой скрипт, который создаст для меня файл войны для определенного каталога.

#!/bin/bash 
cd Siesta/WebContent/ 
jar -cvf ../../Siesta.war * 
cd - 

Затем, если вы откроете военный файл в утилите зип или менеджер архивов в Ubuntu, вы увидите эту структуру

├── extjs 
    ├── extjs-4.2.0 
    ├── extjs-4.2.2 
    ├── index.jsp 
    ├── META-INF 
    ├── siesta 
    ├── tests 
    └── WEB-INF 

У меня есть на компакт-диск в каталог, который я хочу, чтобы создать военный файл которого вызывает раздражение. Я думаю, что может быть лучший способ сделать это с использованием опции -C jar, но когда я использовал «jar -cvf Siesta.war -C Siesta/WebContent *», у него не было такого же результата.

Edit2:

jar -cvf my-app.war myfolder/ 

Для моего приложения работать на TomCat, я использую следующее:

cd Siesta/WebContent 
jar -cvf Siesta.war * 

ответ

2

Хорошо здесь является уже существующий SO с несколькими возможностями о том, как создать военный файл: How to create war files.

Я лично предпочитаю Maven над любым другим сценарием сборки. Поскольку я перешел из ANT, мне не нравилось Maven в первую очередь, но после того, как вы инвестировали, как день или два, в документацию: http://maven.apache.org/pom.html Я начал любить его. В вашем случае все, что вам нужно, - это реорганизовать ваш проект для соответствия стандартной файловой структуре maven и создать минимальный проект Maven (файл a.k.a. pom.xml) для ваших источников, у которых есть упаковка war, а не по умолчанию jar.

Если вы хотите придерживаться только с консолью и не использовать какие-либо сборки помощник рядом с теми, доставленным в JDK вы можете создать свою войну с чем-то вроде этого:

jar cvf my-app.war

взглянуть на это : https://docs.oracle.com/javase/tutorial/deployment/jar/build.html для полной ссылки поддерживаемых опций.

(Примечание: «Война» в контексте веб-приложений на основе Java соответствует стандартным форматам: http://docs.oracle.com/javaee/6/tutorial/doc/bnaby.html в то время как технические ».war "- это то же самое, что и ZIP-сжатая папка, переименованная в« .zip ».)

(Также обратите внимание, что я действительно нашел время, чтобы связаться с maven, так как после этого вы знаете о серьезном инструменте построения и будет иметь возможность создавать jar, ear, war и т.д. в стандартном процессе).

+0

Интересно, что вы используете «jar cvf my-app.war», создающий мой .war-файл, или если TomCat просто нужен zwar-файл .war, тогда все, что мне нужно сделать, это zip содержимое каталога. Позвольте мне попробовать. – SomeGuyOnAComputer

+1

@SomeGuyOnACкомпьютер хорошо, я не тестировал инструмент банки, чтобы быть честным. Но да, если вы будете следовать макете WAR-каталога и иметь рабочее web-приложение внутри этой структуры (может быть единственным файлом 'index.html' в'/WEB-INF/'), вы можете просто ZIP-папку и переименовать полученный ZIP-адрес WAR и развернуть это на вашем местном Tomcat – JBA

+1

Я пробовал использовать метод zip и, к сожалению, не работал. Однако http://stackoverflow.com/questions/16342075/generate-war-file-from-tomcat-webapp-folder использует именно то, что вы поставили выше «jar -cvf my-app.war myfolder /», и это сделало трюк ! – SomeGuyOnAComputer

1

Если это Maven проект, затем откройте консоль, перейдите к месту, где pom.xml файл, а затем запустить :

mvn package 

Он создаст файл {artifactId} - {version} .war под $ {basedir}/target. Предположим, что ваш элементPOM установлен в war в файле pom.xml.

<project ...> 
    ... 
    <packaging>war</packaging> 
    ... 
</project> 

Некоторые из допустимых значений упаковок являются баночки, войны, уха и П. Если значение упаковки не указано, оно будет по умолчанию jar.

Подробнее here и here.

Смежные вопросы