2015-05-04 6 views
1

Я разрабатываю плагин Maven. Есть ли способ получить местоположение каталога target\generated-sources? Можно получить расположение каталога target следующим образом:maven plugin - получить каталог сгенерированных источников

@Mojo(...) 
public class MyMojo extends AbstractMojo { 
    @Parameter(defaultValue = "${project.build.directory}", readonly = true) 
    private File target; 

    .... 

Это дает:

<base dir>\target 

мне нужно:

<base dir>\target\generated-sources 

Ofcourse, я могу добавить generated-sources в путь , но, вероятно, лучше полагаться на настройки проекта.

Так что это не желательно:

@Mojo(...) 
public class MyMojo extends AbstractMojo { 
    @Parameter(defaultValue = "${project.build.directory}\generated-sources", readonly = true) 
    private File target; 

    .... 

ответ

3

вы можете использовать следующий в вашей харизме:

@Parameter(defaultValue="${project.build.directory}/generated-sources/WhatEver", required=true) 
private File targetFolder; 

Если вы установите необходимые Вы можете изменить его с помощью конфигурации П файла. Если вы установите readonly, вы не можете изменить его в файле pom.

Для части generated-sources не существует специального держателя места и т. Д. Другими словами, нет другого выхода.

+0

Спасибо. Если нет специального владельца места, как процессор Maven знает, что в процессе компиляции должны быть включены «сгенерированные источники /» и «сгенерированные источники/WhatEver»? –

+0

Добавлен дополнительный ответ. Какой процессор Maven? – khmarbaise

+0

Спасибо, я не знал, что вы можете добавить исходные каталоги! –

3

Если вам нужно добавить папку в процессе компиляции вы должны пройти этот путь:

@Parameter (defaultValue="${project}", required=true, readonly=true) 
private MavenProject project; 
... 

project.addCompileSourceRoot(TheFolderYouWouldLikeToAdd); 
0
  1. «мишень/сгенерированные-источники» не является стандартной папки для сгенерированных источников.
  2. Любой плагин, который генерирует источники, «спрашивает», где генерировать источники. Например. для jaxws: wsimport, это параметр «sourceDestDir».