#maven #m2eclipse
#maven #m2eclipse
Вопрос:
Я новичок в Maven, и у меня очень простой вопрос. У меня есть одно приложение J2EE (EAR). Когда я создаю это приложение, я хочу игнорировать некоторую зависимость в папке lib моей war, поскольку эти jars будут предоставляться моим сервером, таким как jboss (все материалы hibernate). Но когда я запускаю этот проект war внутри встроенного сервера jetty, мне нужно, чтобы он находился внутри моей папки lib. Я слышал о профиле maven, который можно использовать для аналогичных целей. Может ли кто-нибудь привести мне пример или некоторые подробности об этом, или есть какой-то другой способ выполнить эту задачу. У меня есть EAR, который содержит модуль ejb (jar) и веб-модуль (war).
Спасибо
Ответ №1:
Укажите свою библиотеку в профиле. Установите <scope>provided</scope>
для вашей библиотеки в профиле jboss. Например.:
<profiles>
<profile>
<id>jboss</id>
…
<dependencies>
<dependency>
<groupid>...</groupid>
<artifactid>...</artifactid>
<version>...</version>
<scope>provided</scope>
</dependency>
</dependencies>
…
</profile>
<profile>
<id>jetty</id>
…
<dependencies>
<dependency>
<groupid>...</groupid>
<artifactid>...</artifactid>
<version>...</version>
</dependency>
</dependencies>
…
</profile>
</profiles>
Комментарии:
1. Спасибо, для меня это выглядит как хорошее начало. Еще один вопрос, могу ли я также сказать maven использовать diff. ApplicationContext для jboss и jetty. Если да, то как? Извините, что задаю такой глупый вопрос, но я совершенно новичок, и для Maven доступна не очень хорошая книга
2. Я имею в виду, что у меня есть два ApplicationContext, каждый для jboss и jetty. Когда я запускаю свой проект на jetty во время разработки, я хочу, чтобы spring запускал транзакцию, и когда я развертываю свой проект, он использует jndi entitymanager и transaction manager из jboss. Я знаю, что это не очень хороший дизайн, но я не могу изменить его сейчас, на данном этапе, поскольку я работаю над чужим кодом.
3. Вы можете использовать фильтрацию Maven ( maven.apache.org/plugins/maven-resources-plugin/examples /… ). Это настройка свойства. Вы указываете свойства в своем pom.xml целевые файлы и maven устанавливает их во время сборки. Вы можете задать свойства для каждого профиля.
4. Да, я нашел это в одном из блогов, и это потрясающе. Спасибо за всю вашу помощь и советы. Я создаю пример проекта и отлично работает