Como criar um ficheiro WAR usando a linha de comandos?
instalei o JBoss Developer Studio e é possível criar um ficheiro de guerra por "projecto do rato direito > Exportar > ficheiro de guerra", mas quero exportar o meu projecto para um ficheiro de guerra usando a linha de comandos.
Tenho o maven instalado, que é um dos requisitos do estúdio, e li Que posso gerar um ficheiro de guerra usando o maven, mas preciso de um ficheiro chamado pom.xml. Quando procurei no meu espaço de trabalho e projecto, pom.faltava o xml. Posso precisar de criar pom manualmente.xml mas não tenho a certeza como.a minha árvore de directórios para o meu projecto é a seguinte:
Siesta
├── build
│ └── classes
├── src
└── WebContent
├── extjs
├── extjs-4.2.0
├── extjs-4.2.2
├── index.jsp
├── META-INF
├── siesta
├── tests
└── WEB-INF
Como posso criar um ficheiro de guerra para o meu projecto Maven / JBoss usando a linha de comando? Eu uso o Linux e preferia não ter que criar um pom.arquivo xml, mas se não houver outra maneira, então eu vou usar o arquivo xml para gerar o arquivo war.
Editar:
Então jar é o caminho para criar um arquivo de guerra. Eu escrevi um script minúsculo que vai criar um arquivo de guerra para mim para um diretório específico.#!/bin/bash
cd Siesta/WebContent/
jar -cvf ../../Siesta.war *
cd -
Então se abrir o ficheiro war num utilitário zip ou gestor de pacotes no ubuntu, irá ver esta estrutura
├── extjs
├── extjs-4.2.0
├── extjs-4.2.2
├── index.jsp
├── META-INF
├── siesta
├── tests
└── WEB-INF
Eu tenho que CD no diretório que eu quero criar um arquivo de guerra que é meio chato. Eu acho que pode haver uma maneira melhor de fazer isso usando a opção jar-C mas quando eu usei " Jar-cvf Siesta.war-C Siesta / WebContent * " it didn't have the same result.
Edit2:
jar -cvf my-app.war myfolder/
para a minha aplicação para trabalhar no TomCat, eu uso o seguinte:
cd Siesta/WebContent
jar -cvf Siesta.war *
2 answers
Tudo bem aqui é um SO já existente com algumas possibilidades sobre como criar um arquivo de guerra: Como criar arquivos de guerra .
Pessoalmente prefiro Maven a qualquer outro cenário de construção - já que eu migrei de ANT eu não gostava de Maven em primeiro lugar, mas depois de investir como um dia ou dois nas documentações: http://maven.apache.org/pom.html comecei a adorar. No seu caso, tudo o que precisa é remodelar o seu projecto para satisfazer o ficheiro padrão maven. estruturar e criar um projecto Maven mínimo (também conhecido por ficheiropom.xml
) para as suas fontes que tenham a embalagem war
em vez do jar
por omissão.
Se você quiser ficar apenas com a consola e não usar qualquer ajudantes de construção ao lado dos entregues pelo JDK você pode criar sua guerra com algo assim:
jar cvf my-app.war
(Nota: uma" guerra " no contexto de aplicações web baseadas em java segue um formato padrão: http://docs.oracle.com/javaee/6/tutorial/doc/bnaby.html enquanto o técnico ".war "file is just the same as a ZIP compressed folder renamed to".postal".)
(também note que eu realmente tomar o tempo para entrar em contato com maven desde que depois que você sabe sobre uma ferramenta de construção séria e será capaz de criar jar
, ear
, war
etc. em um processo padrão).
Se este é um projecto Maven, então abra a sua consola, navegue até onde o pom.o ficheiro xml é então executado:
mvn package
Criará o {artifactId} - {version}.war ficheiro em ${basedir}/target directório. Isto assume que o seu elemento packaging
POM está definido para war
no seu pom.ficheiro xml .
<project ...>
...
<packaging>war</packaging>
...
</project>
Alguns dos valores de embalagem válidos são jar, guerra, ear e pom . Em caso de ausência de embalagem o valor foi indicado, por omissão será jar.