2015-01-10 4 views
0

Я нахожусь в странном варианте использования края с Maven & Любопытно, почему он ведет себя так, как делает.Зависимость плагина Maven не может использовать родительское свойство pom

я определяю свойство в моем родительском проекте так:

<properties> 
     <some.property.version>1.0.0.0</some.property.version> 
    </properties> 

Теперь в модуле, я установил версию зависимости для плагина, как так:

<build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>bob</artifactId> 
       <version>1.0.0.0</version> 
       <dependencies> 
        <dependency> 
         <groupId>org.example</groupId> 
         <artifactId>example</artifactId> 
         <version>${some.property.version}</artifactId> 
        </dependency> 
       </dependencies> 
      </plugin> 
     </plugins> 
    </build> 

Это заставляет Maven выплеснуть ошибку:

[ERROR] 'build.plugins.plugin [org.apache.maven.plugins: bob] .dependencies.dependency.version' для org.example: example: jar должно быть допустимая версия, но это '$ {some.p roperty.version}». @ line 350, столбец 16

Что для меня странно, если я переведу свойство, определяемое в самом модуле, Maven компилируется просто отлично. Это ошибка? Или существуют ограничения видимости на родительские свойства pom в плагине для модуля?

+0

С другой мыслью, это, вероятно, лучше всего будет подано в списке рассылки ... будет позже обновлено с отзывами пользователей Maven! – gordysc

ответ

0

Безумно быстрый ответ от списка рассылки Apache Maven! Родительский pom был реорганизован, и модуль указывал на artifactId устаревшего родителя. Престижность Роберту!

Hi,

This makes me wonder if the "right" parent is used, so please double check the groupId, artifactId and version. If both parent and module are part of the same multi-module, be sure that the relativePath is correct (defaults to ../pom.xml) You could also use "mvn org.apache.maven.plugins:maven-help-plugin:2.2:effective-pom" to verify that the property is really there with the expected value. If this is all as expected, then it seems to be a bug.

thanks, Robert

+1

Thnx for the kudos –

+0

@RobertScholte incase зависимости в плагине управляются родителем, можем ли мы указать его без версии, поскольку мы делаем это для зависимости проекта. Зависимости плагинов не разрешаются при попытке '' build.plugins.plugin [com.mysema.querydsl: querydsl-maven-plugin] .dependencies.dependency.version 'для ch.qos.logback: logback-classic: jar отсутствует , @ line 95, column 18' –

+0

Все используемые плагины должны быть полностью решены до того, как Maven сможет запустить сборку. Таким образом, вы не можете использовать зависимости проекта в качестве зависимостей плагина, они просто имеют разные цели. –

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