从父pom的插件执行中删除一个目标

时间:2019-09-13 08:40:34

标签: java maven

最近我们将Maven版本更改为3.5.4 根据{{​​3}}

maven-source-plugin jar目标已在Maven Super POM中更改为jar-no-fork

我们有公司主pom:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <version>3.0.1</version>
    <executions>
        <execution>
            <id>attach-sources</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

我不能改变哪一个。 加上有效的pom中的maven super pom,我得到了

<plugin>
  <artifactId>maven-source-plugin</artifactId>
  <version>3.0.1</version>
  <executions>
    <execution>
      <id>attach-sources</id>
      <goals>
        <goal>jar-no-fork</goal>
        <goal>jar</goal>
      </goals>
    </execution>
  </executions>
  <inherited>true</inherited>
</plugin>

在发布期间,源代码生成了两次(一个文件覆盖第二个文件),但是在部署到Artifactory时,由于没有覆盖覆盖工件的权限而出现错误。

我可以配置一些pom如何禁用插件的一个目标吗?

1 个答案:

答案 0 :(得分:2)

您需要从父pom中删除执行(足以删除默认阶段),并添加具有新目标的新执行:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-source-plugin</artifactId>
  <version>3.0.1</version>
  <executions>
    <execution>
      <id>attach-sources</id>
      <phase/>
    </execution>
    <execution>
      <id>custom-attach-sources</id>
      <goals>
        <goal>jar-no-fork</goal>
      </goals>
    </execution>
  </executions>
  <inherited>true</inherited>
</plugin>