gpt4 book ai didi

maven - 是否可以用变量定义 Maven 目标?

转载 作者:行者123 更新时间:2023-12-03 04:02:11 27 4
gpt4 key购买 nike

我的问题来自于想要对所有项目运行 javadoc:aggregate,除了一个项目,我想在其中运行 javadoc:javadoc (因为这个项目有一个子模块,需要使用其 maven-javadoc- 中的源路径设置)插件配置,因为它已生成代码和源)。

据我了解,存在一个错误,这意味着如果您运行聚合目标,则源路径设置将被忽略。我自己尝试了一下,没有成功,发现: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>

及其子模块将定义其源路径:

<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插件,但不提供目标:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>generate-javadoc</id>
<phase>package</phase>
<configuration>
...
</configuration>
</execution>
</executions>
</plugin>

每个项目中的 POM 都提供目标:

<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> <!-- or aggregate for those projects that require it -->
</goals>
</execution>
</executions>
</plugin>

关于maven - 是否可以用变量定义 Maven 目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11321016/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com