Мой вопрос исходит из желания запускать javadoc: aggregate для всех проектов, кроме одного, где я хочу запустить javadoc: javadoc (потому что этот один проект имеет подмодуль, который должен использовать параметр sourcepath в своем maven-javadoc-plugin config, поскольку он сгенерировал код, а также источник).Можно ли определить цель maven с переменной?
И, как я понимаю, есть ошибка, которая означает, что параметр sourcepath игнорируется, если вы запустите совокупную цель. Я пробовал сам, и это не сработало, и я нашел: http://jira.codehaus.org/browse/MJAVADOC-311
У меня есть родительский POM, который определяет плагин конфигурации:
<properties>
<javadoc-goal>aggregate</javadoc-goal>
<properties>
т.е.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>generate-javadoc</id>
<phase>package</phase>
<goals>
<goal>${javadoc-goal}</goal>
</goals>
<configuration>
...
</configuration>
</execution>
</executions>
</plugin>
Тогда у меня есть несколько проектов, которые наследовать от этого проекта. Один, где мне нужно запустить Javadoc вместо агрегата будет определить:
<javadoc-goal>javadoc</javadoc-goal>
и его подмодуль будет определять его SourcePath:
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<sourcepath>${basedir}/src/main/java:${basedir}/src/generated/java</sourcepath>
</configuration>
...
</plugin>
</plugins>
</reporting>
Я предполагаю, что ответ на мой вопрос нет, потому что, когда я пытаюсь установить мой родительский POM он выглядит, как он обрабатывает переменную как литерал, который я нашел странным, потому что вы можете использовать их во многих других местах:
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] '${javadoc-goal}' was specified in an execution, but not found in the plugin
Если я не могу сделать это любые идеи для решения этой проблемы?
Хорошо, поэтому я решил это, определив все, кроме цели плагина, в родительском POM, а затем определил соответствующую цель (javadoc или aggregate) в проекте POM. Должен ли я удалить этот вопрос, поскольку он больше не требует ответа? –
Идите дальше и ответьте на свой вопрос; он [рекомендуется] (http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/). – user944849