Martinus_
Martinus_

Reputation: 170

Remove one goal from plugin execution from parent pom

Recently we changed maven version to 3.5.4 According to https://issues.apache.org/jira/browse/MNG-5940

the maven-source-plugin jar goal has been changed into jar-no-fork in Maven Super POM

We have company master 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>

which one I can not change. Together with maven super pom in effective pom I got

<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>

During release sources are generated twice (one file override the second one) but on deployment to Artifactory I got error because of no rights to override artifacts.

Can I configure some how my pom to disable one goal for plugin?

Upvotes: 1

Views: 586

Answers (1)

Milen Dyankov
Milen Dyankov

Reputation: 3062

You need to remove the execution from your parent pom (it's enough to remove the default phase) and add a new execution with the new goal:

<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>

Upvotes: 3

Related Questions