2015-12-21 9 views
4

У меня есть собственный плагин maven. Для получения зависимостей проекта я использую библиотеку jcabi-aether. Он отлично работает для получения зависимостей между областями проекта. Но то, что мне нужно для разрешения зависимостей плагин-Scope поэтому вызов будет выглядеть следующим образом:Программный подход к настройке пользовательских зависимостей в плагине maven

<plugin> 
    <groupId>com.maven</groupId> 
    <artifactId>some-maven-plugin</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
    <configuration> 
      <some>${some}/path</some> 
    </configuration> 
    <dependencies> 
      <dependency> 
       <groupId>joda-time</groupId> 
       <artifactId>joda-time</artifactId> 
       <version>2.8.1</version> 
       <classifier>sources</classifier> 
      </dependency> 
    </dependencies> 
</plugin> 
... 
<dependency> 
    <groupId>com.jcabi</groupId> 
    <artifactId>jcabi-aether</artifactId> 
    <version>0.10.1</version> 
</dependency> 

ли кто-нибудь имеет какие-либо идеи? Спасибо

+0

Я не вижу никакой конфигурации для модуля jcabi-эфира в вашем размещенном maven материале. – vinay

+0

@vinay, потому что я использую логические логики jcabi, как описано в ссылке, которую я разместил. – nKognito

+0

Вы добавили зависимость для jcabi-эфира, упомянутого в ссылке? – vinay

ответ

2

Чтобы получить плагин зависимостей области видимости из execute метода пользовательских Mojo, вы должны цикла по элементам сборки следующим образом:

Build build = super.getProject().getBuild(); 
if (null != build) { 
    List<Plugin> plugins = build.getPlugins(); 
    for (Plugin plugin : plugins) { 
     List<Dependency> dependencies = plugin.getDependencies(); 
     // you can then use your custom code here or just collected them for later usage. 
     // An example of what you can get, below 
     for (Dependency dependency : dependencies) { 
      getLog().info(dependency.getGroupId()); 
      getLog().info(dependency.getArtifactId()); 
      getLog().info(dependency.getVersion()); 
      getLog().info(dependency.getClassifier()); 
      getLog().info(dependency.getScope()); 
      // etc. 
     } 
    } 
} 

После того, как вы их, я полагаю, вы можете затем используйте API Aether для получения транзитивных зависимостей, как вы уже делали для зависимостей проекта.

+0

plugin.getDependencies() возвращает пустой список –

+0

, но заинтересован ли он в этом pom? какую версию maven api вы используете? –

+0

У меня есть пользовательский плагин, и мне нужно получить свои собственные зависимости, включая транзитивные (которые перечислены в pom.xml плагина, а не там, где он используется). Apache Maven 3.3.9 –

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

  • Нет связанных вопросов^_^