我的问题来自想要为所有项目运行 javadoc:aggregate,除了一个我想运行 javadoc:javadoc 的项目(因为这个项目有一个子模块,需要在其 maven-javadoc-plugin 配置中使用 sourcepath 设置,因为它生成了代码和源代码)。
据我了解,存在一个错误,这意味着如果您运行聚合目标,则会忽略源路径设置。我自己尝试过,但没有用,我发现:http: //jira.codehaus.org/browse/MJAVADOC-311
我有一个定义插件配置的父 POM:
<properties>
<javadoc-goal>aggregate</javadoc-goal>
<properties>
IE
<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>
其子模块将定义其源路径:
<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
如果我不能这样做,有什么想法可以解决这个问题吗?