2013-09-18 2 views
3

Если я работаю с EJB 3.1, в чем разница междуMaven 2 & Packaging против баночке EJB

<packaging>jar</packaging> 

и

<packaging>ejb</packaging> 
... 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-ejb-plugin</artifactId> 
    <version>2.3</version> 
    <configuration> 
     <ejbVersion>3.1</ejbVersion> 
    </configuration> 
</plugin> 

ответ

2

Как уже упоминался в http://maven.apache.org/plugins/maven-ejb-plugin/usage.html,

«Плагин не делать какой-либо EJB специфического процессинга при генерации банки для проверки наличия дескриптора развертывания EJB, если версия EJB является 2.0+, за исключением»

Поскольку у вас есть ejb 3.1, файл ejb-jar.xml является необязательным, поэтому, если вы не хотите создавать клиентские заглушки и служебные классы, как указано в комментариях Мартина, это не будет иметь большого значения, если вы используете упаковку jar.

4

Использование упаковки типа ejb включает в себя выполнение maven-ejb-plugin. Это не относится к типу упаковки jar (если вы явно не настроили его). Конфигурация плагина, указанная в исходном вопросе, требуется только в том случае, если вам нужно определить конфигурацию, которая отличается от значений по умолчанию.

Насколько я знаю, основной целью maven-ejb-plugin является (было) создание модуля EJB client (включая только интерфейсы). Но ИМХО это уже не рекомендуется. Обычно вы предоставляете API через отдельный модуль и не позволяете ejb-plugin создавать его автоматически.

+0

Хорошо, спасибо. Таким образом, упаковка ejb больше не полезна. – tweetysat

+0

В результате JAR, вероятно, будет почти таким же, но все равно правильно использовать тип упаковки «ejb». И, как сказал Джей, он проверяет существование дескриптора развертывания EJB. –

1

Я также хотел бы предложить сравнение эффективных выходов из пом Maven помощи плагина для обоих jar и ejb типов проектов:

mvn help:effective-pom 

Это позволит сравнить то, что специалист создает для ejb проектов и jar проектов.

Разница между ejb и jar также делает это при упаковке в ушной плагин. Как правило, свойство конфигурации ejbModule используется для ejb-jars, содержащего bean-компоненты, в то время как jarModule свойство конфигурации ушного плагина используется для библиотек (jar archives).

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