首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven - Parent Pom - Child继承

Maven - Parent Pom - Child继承
EN

Stack Overflow用户
提问于 2012-02-28 15:09:18
回答 3查看 20.7K关注 0票数 25

我正在尝试做一个maven父pom设置,在那里我不需要在我的子pom中声明任何插件信息,一切都是从父pom中获取的。

我基本上让它工作,我已经把我所有的插件与这些配置到父pom中。然后在子pom中,我仍然必须声明插件,但没有版本和配置信息。

我根本不想在孩子中声明这个插件。通过这种方式,我可以向我的父pom添加新的功能(例如pmd、freebugs等),我的所有项目现在都可以使用它们了。我如何才能做到这一点呢?

父Pom

代码语言:javascript
复制
<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-scm-plugin</artifactId>
            <version>1.0</version>
            <inherited>true</inherited>
            <configuration>
                <providerImplementations>
                    <cvs>cvs_native</cvs>
                </providerImplementations>
                <systemProperties>
                    <property>
                        <name>maven.scm.perforce.clientspec.name</name>
                        <value>${perforceClientSpec}</value>
                    </property>
                </systemProperties>
            </configuration>
        </plugin>

Child Pom仍然需要这样做,但如果可以避免的话,我不想这样做:

代码语言:javascript
复制
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-scm-plugin</artifactId>
</plugin>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-28 15:26:44

<pluginManagement>部分用于配置从该部分继承的项目构建。但是,这只会配置那些在子元素中的元素中实际被引用的插件(因此,您必须按照您的指示显式地指定它们)。请参阅更多here

如果您想避免这种情况,可以将此信息放入<build>部分,如下所示:

代码语言:javascript
复制
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-scm-plugin</artifactId>
      <version>1.0</version>
      <configuration>
        <...>
      </configuration>
      <executions>
        <...>
      </executions>
    </plugin>
  </plugins>
</build>
票数 37
EN

Stack Overflow用户

发布于 2012-02-28 15:22:03

尝试只使用标记,而不是使用pluginManagement。应该是自动继承的。您可以选择覆盖子pom中的配置。用mvn help:effective-pom检查一下

票数 15
EN

Stack Overflow用户

发布于 2012-02-28 15:25:53

您无法避免在子pom中命名插件,因为maven如何知道您使用的是哪个插件。pluginManagement部分用于定义插件的版本,此外,它还用于定义默认配置。

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

https://stackoverflow.com/questions/9477789

复制
相关文章

相似问题

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