Você cria um novo projeto. O novo projeto é seu projeto de montagem EAR, que contém suas duas dependências para seu projeto EJB e seu projeto WAR.
Na verdade, você tem três projetos de maven aqui. Um EJB. One WAR. Uma orelha que une as duas partes e cria a orelha.
Os descritores de implementação podem ser gerados pelo maven ou colocados dentro do diretório de recursos na estrutura do projeto EAR.
O plugin maven-ear é o que você usa para configurá-lo, e a documentação é boa, mas não muito clara se você ainda está descobrindo como o maven funciona em geral.
Então, como exemplo, você pode fazer algo assim:
<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>myEar</artifactId>
<packaging>ear</packaging>
<name>My EAR</name>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<configuration>
<version>1.4</version>
<modules>
<webModule>
<groupId>com.mycompany</groupId>
<artifactId>myWar</artifactId>
<bundleFileName>myWarNameInTheEar.war</bundleFileName>
<contextRoot>/myWarConext</contextRoot>
</webModule>
<ejbModule>
<groupId>com.mycompany</groupId>
<artifactId>myEjb</artifactId>
<bundleFileName>myEjbNameInTheEar.jar</bundleFileName>
</ejbModule>
</modules>
<displayName>My Ear Name displayed in the App Server</displayName>
<!-- If I want maven to generate the application.xml, set this to true -->
<generateApplicationXml>true</generateApplicationXml>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.3</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
<finalName>myEarName</finalName>
</build>
<!-- Define the versions of your ear components here -->
<dependencies>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>myWar</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>myEjb</artifactId>
<version>1.0-SNAPSHOT</version>
<type>ejb</type>
</dependency>
</dependencies>
</project>
type
comoejb
<type>ejb</type>
'build.plugins.plugin.version' for org.apache.maven.plugins:maven-ear-plugin is missing
e'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing
, então, talvez você queira atualizar sua resposta excelenteO que me ajudou muito foi executar o arquétipo do Maven: gerar meta e selecionar um dos arquétipos, alguns dos quais parecem ser atualizados regularmente (em particular, o JBoss parece estar bem mantido).
Centenas de arquétipos apareceram em uma lista numerada para seleção (519 a partir de agora!). O objetivo, ainda em execução, me levou a fazer uma seleção inserindo um número ou uma string de pesquisa, por exemplo:
Eu digitei a string de pesquisa "orelha", que reduziu a lista a apenas 8 itens (até hoje):
Selecionei "org.jboss.spec.archetypes: jboss-javaee6-ear-webapp" (inserindo a seleção "5" neste exemplo).
Em seguida, a meta me pediu para inserir o groupId, o artifactId, os nomes dos pacotes, etc., e então gerou o seguinte aplicativo de exemplo bem documentado:
Depois de ler os quatro arquivos POM, que foram bem comentados, eu tinha praticamente todas as informações de que precisava.
fonte
Eu fiz um repositório github para mostrar o que eu acho que é uma boa (ou melhores práticas) estrutura de projeto de inicialização ...
https://github.com/StefanHeimberg/stackoverflow-1134894
algumas palavras-chave:
Saída Maven:
fonte
O NetBeans IDE define automaticamente a estrutura que é quase semelhante à sugerida por Patrick Garner. Para usuários NetBeans
Arquivo -> Novo projeto -> No lado esquerdo, selecione Maven e, no lado direito, selecione Maven Enterprise Application e pressione Avançar -> Solicita nomes de projeto para war, ejb e configurações.
O IDE criará automaticamente a estrutura para você.
fonte
Este é um bom exemplo da parte do plugin maven-ear .
Você também pode verificar os arquétipos maven que estão disponíveis como exemplo. Se você apenas executar runt mvn archetype: generate, você obterá uma lista de arquétipos disponíveis. Uma delas é
fonte
maven-archetype-j2ee-simple
parece desnecessariamente complexo em estrutura - particularmente com módulos dentro de módulos e módulos separados para coisas como registro. Eu não entendi a lógica por trás dessa estruturaEu tenho pesquisado de alto a baixo por um exemplo ponta a ponta de um aplicativo completo com pacote auricular baseado em maven e, finalmente, encontrei isso . As instruções dizem para selecionar a opção 2 ao executar através da CLI, mas para seus propósitos, use a opção 1.
fonte