Вы создаете новый проект. Новый проект - это ваш проект сборки EAR, который содержит две ваши зависимости для вашего проекта EJB и вашего проекта WAR.
Итак, у вас на самом деле есть три проекта maven. Один EJB. Одна ВОЙНА. Одно УШИ, которое соединяет две части вместе и образует ухо.
Дескрипторы развертывания могут быть созданы maven или помещены в каталог ресурсов в структуре проекта EAR.
Плагин maven-ear-plugin - это то, что вы используете для его настройки, и документация хороша, но не совсем ясна, если вы все еще разбираетесь, как работает maven в целом.
В качестве примера вы можете сделать что-то вроде этого:
<?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
какejb
<type>ejb</type>
'build.plugins.plugin.version' for org.apache.maven.plugins:maven-ear-plugin is missing
и'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing
, так что вы можете обновить свой в остальном отличный ответЧто мне очень помогло, так это запустить архетип Maven: создать цель и выбрать один из архетипов, некоторые из которых, кажется, регулярно обновляются (в частности, JBoss, кажется, поддерживается в хорошем состоянии).
Сотни архетипов появились в пронумерованном списке, из которого можно было выбрать (519 на данный момент!). Цель, которая все еще выполняется, побудила меня сделать выбор, введя число или введя строку поиска, например:
Я ввел строку поиска «ухо», в результате чего список сократился до 8 пунктов (на сегодняшний день):
Я выбрал "org.jboss.spec.archetypes: jboss-javaee6-ear-webapp" (введя значение "5" в этом примере).
Затем цель попросила меня ввести groupId, artifactId, имена пакетов и т. Д., И затем был создан следующий хорошо документированный пример приложения:
После прочтения четырех файлов POM, которые были хорошо прокомментированы, я получил почти всю необходимую информацию.
источник
Я сделал репозиторий github, чтобы показать, что я считаю хорошей (или передовой практикой) структурой проекта запуска ...
https://github.com/StefanHeimberg/stackoverflow-1134894
некоторые ключевые слова:
Выход Maven:
источник
IDE NetBeans автоматически определяет структуру, которая почти аналогична структуре, предложенной Патриком Гарнером. Для пользователей NetBeans
Файл -> Новый проект -> В левой части выберите Maven, а в правой части выберите Maven Enterprise Application и нажмите Далее -> Запрашивает имена проектов для war, ejb и настроек.
IDE автоматически создаст структуру для вас.
источник
Это хороший пример части maven-ear-plugin .
Вы также можете проверить архетипы maven , доступные в качестве примера. Если вы просто наберете mvn archetype: generate, вы получите список доступных архетипов. Один из них является
источник
maven-archetype-j2ee-simple
кажется излишне сложной по структуре - особенно с модулями внутри модулей и отдельными модулями для таких вещей, как ведение журнала. Я не понималЯ долго искал сквозной пример полного приложения на основе maven, упакованного для ушей, и, наконец, наткнулся на это . В инструкциях предлагается выбрать вариант 2 при запуске через интерфейс командной строки, но для ваших целей используйте вариант 1.
источник