首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven-javadoc-plugin的“聚合”目标和阶段

Maven-javadoc-plugin的“聚合”目标和阶段
EN

Stack Overflow用户
提问于 2016-05-16 00:06:39
回答 1查看 1.2K关注 0票数 0

我有一个多模块项目:

代码语言:javascript
复制
parent
  |____ module1
  |____ module2
  |____ module3

我想为所有模块生成聚合Javadoc。这是通过在parent的pom.xml (它有一个pom打包并定义子模块)中使用这样的东西来实现的:

代码语言:javascript
复制
//...
<modules>
    <module>module1</module>
    <module>module2</module>
    <module>module3</module>
</modules>
//...
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.10.3</version>
            <executions>
                <execution>
                    <id>aggregate</id>
                    <goals>
                        <goal>aggregate</goal>
                    </goals>
                    <phase>prepare-package</phase>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

聚合的Javadoc是正确生成的,运行良好!

但问题是,我需要在module3 final .jar中包含生成的聚合Javadoc!换句话说,我希望生成的module3.jar包含所有模块生成的聚合Javadoc的副本!

这就是为什么我试图在maven-javadoc-plugin项目的准备包阶段运行parent插件:我希望在完成module3打包之前生成Javadoc,这样我就可以包含它(例如,通过使用maven-antrun-plugin插件复制它)。

但是,我的问题是,即使我使用准备包阶段,当运行package阶段时还没有生成聚合的module3工件!这就像父插件在所有子插件之后运行,即使它是使用一个应该在运行之前运行的阶段声明的.

知道如何在package阶段之前为module3的所有模块生成聚合的Javadoc,所以我可以包含这个Javadoc吗?

EN

回答 1

Stack Overflow用户

发布于 2016-05-16 17:51:00

我希望有人能找到更好的解决方案,但我做了一个解决办法,如果有一天它能帮助到某人的话:

我不允许Maven自己生成聚合的Javadoc。我通过将maven-javadoc-plugin插件封装在<profile>中来防止这种情况发生。我给了我一个"aggregatedJavadoc“身份。

然后,在module 3的pom.xml中,我添加了一个exec-maven-plugin插件,最终,它在父模块的"aggregatedJavadoc“配置文件中,在prepare-package阶段以编程方式调用aggregate目标!然后,我将得到的Javadoc复制到module3模块的构建输出文件夹中,因此它包含在生成的.jar中。

在我的示例中,exec-maven-plugin插件调用的脚本是自定义的,但是可以使用许多解决方案以编程方式调用目标Maven目标:例如,Apache调用程序

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37244984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档