2013-03-15 5 views
4

Я ищу возможность управлять версиями проекта maven.Плагин Maven для управления версиями

У меня есть некоторые модули maven в моем проекте maven, и некоторые из этих модулей зависят от других этих модулей.

Я хочу определить версию для работы в глобальном масштабе для каждого модуля или зависимости.

Это возможно?

Что-то вроде

globalVersion=2.0 

<groupId>test</groupId> 
<artifactId>test</artifactId> 
<version>${globalVersion}</version> 

Но, как я сказал, а не в каждом отдельном ПОМ. Я имею в виду глобально для всех моих попов в моих модулях maven.

+0

Меня также интересовал бы это. Я делаю что-то вроде этого с фильтрацией Maven для других файлов в моем проекте, а не с pom-файлами. – blamonet

+1

У вас может быть родительский pom с разделом '', где вы можете определить все свои номера версий. Затем вашим детям нужно только указать родителя и файл groupId/artifactId. Версия будет той, что определена в родительском. – assylias

+0

nope. это решение не работает. – user1882812

ответ

5

(я предполагаю, что у вас есть родительский POM общий для всех модулей.)

определить свойство в родительском ПОМ:

<properties> 
    <globaleVersion>1.0.0</globalVersion> 
</properties> 

и определить <dependencyManagement> секцию в родительском ПОМ тоже:

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>test</groupId> 
      <artifactId>test</artifactId> 
      <version>${globalVersion}</version> 
     </dependency> 
     <dependency> 
      <groupId>A</groupId> 
      <artifactId>A</artifactId> 
      <version>${globalVersion}</version> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

И в ваших модулях определяются зависимости без указания версии (maven найдет ее из секции dependencyManagement родителя)

 <dependencies> 
     <dependency> 
      <groupId>test</groupId> 
      <artifactId>test</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>A</groupId> 
      <artifactId>A</artifactId> 
     </dependency> 
    </dependencies> 
+0

thx это уже помогло. в моем maven-модулях я также должен определить родительский проект. это также работает с этим определением, чтобы я мог просто удалить тег версии? – user1882812

+0

нет ... извините, вы вынуждены ссылаться на родителя с его правильным номером версии в разделе ''. (Это необходимо, потому что 'globalVersion' определяется в родительском ... поэтому он не может быть использован для поиска родителя.) – ben75

+0

ok я вижу. и ваше решение не работает :( «null (org.apache.maven.plugins: maven-resources-plugin: 2.5: resources: default-resources: process- \t ресурсов)», - говорит он по тегу упаковки и «Проект Ошибка сборки: «dependencies.dependency.version» отсутствует в теге зависимости каждого модуля. – user1882812

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