2015-05-05 3 views
1

Возможно ли получить artifactId текущего Mojo?maven plugin - получить artifactId плагина в Mojo

@Mojo(...) 
public class MyMojo extends AbstractMojo { 
    @Parameter(property = "project") 
    private MavenProject project; 
    @Parameter(property = "inputDirectory", defaultValue = "${project.basedir}/src/main/${artifact id of the plugin}") 
    private File inputDirectory; 

    ... 

Я мог бы жёстко артефакт идентификатор плагина, но я предпочел бы получить его динамически.

+0

Зачем вам нужен артефакт I mojo? В чем цель? – khmarbaise

+0

У нас есть много плагинов для поддержки. Поскольку мы все еще находимся на стадии разработки, они, как правило, сильно меняются. Некоторые плагины требуют входных источников (см. Пример). Я хотел бы, чтобы эти источники были в каталоге с тем же именем, что и идентификатор артефакта, чтобы все было согласовано и структурировано. –

+0

Сначала я использовал бы '$ {project.build.sourceDirectory}' вместо '$ {project.basedir}'. Зачем вам нужно поддерживать много плагинов? В чем проблемы? Звучит для меня, что вы делаете что-то неправильно? Помимо того, что имя папки, основанной на artifactid плагинов Hm ... лучше имя, основанное на идее источника, как 'src/main/groovy',' src/main/cpp'? – khmarbaise

ответ

0

BTW, что приходит мне в голову, что вы используете устаревшую инъекции стиль

@Parameter(property = "project") 
private MavenProject project; 

@Parameter(property = "inputDirectory", defaultValue = "${project.basedir}/src/main/${artifact id of the plugin}") 
private File inputDirectory; 

They should look like this:

Значения выражения для DefaultValue документированы здесь: http://maven.apache.org/ref/3.1.1/maven-core/apidocs/org/apache/maven/plugin/PluginParameterExpressionEvaluator.html в зависимости от использованного Maven версии.

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

@Parameter(defaultValue = "${project.basedir}/src/main/${artifact id of the plugin}", property = "inputDirectory", required = true) 
private File inputDirectory; 
Смежные вопросы