Maven插件依赖 - 在所有的pom文件中使用源代码插件。

3

我希望为我们所有的项目配置maven source plugin。目前,我们的项目都是继承一个parent pom。因此,为了让所有项目都使用maven source plugin,我采取了以下措施:

  1. Defined the maven source plugin under build -> plugin management in the parent pom

                <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
    
  2. In my project pom (the child pom), I have included the source plugin under build -> plugins

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
        </plugin>

请问这是配置的最佳方式吗?有没有办法避免在子POM中指定源插件?


是的,您可以避免在每个子项目中指定源插件。为此,您需要将其放置在父POM的build -> plugins部分中,而不是build -> pluginManagement - Andrew Logvinov
1个回答

4

这是最佳方法。

为了避免在子模块的pom文件中添加插件声明,您可以将其添加到父模块的build/plugins部分。然而,问题在于每个子模块都会添加这个调用,即使它对于一些子模块(如pom或ear打包)并不合适。因此,您不应该这样做。


我没有在我的评论中加入它,但我完全同意你的想法。 - Andrew Logvinov
谢谢,我也同意不要在每个子项目中盲目使用它的建议。 - IceMan
@ManfredMoser @AndrewLogvinov 父POM中是否有可能进行条件性 <execution>,以便仅对<packaging>jar</packaging>子项目执行?然后可以将其放在父级的<build> <plugins>部分中... - MarnixKlooster ReinstateMonica
@MarnixKlooster 我认为没有更容易或更困难的方法来做到这一点。我猜更容易的方法是设置所有子模块的执行并跳过不需要的地方(属性source.skip)。 - Andrew Logvinov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接