Bug 1012913

Summary: maven-jar-plugin: replaces project artifact if no classifier is specified
Product: [Fedora] Fedora Reporter: Mikolaj Izdebski <mizdebsk>
Component: maven-jar-pluginAssignee: Michal Srb <msrb>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: java-sig-commits, mizdebsk, msrb, rrati, sochotni, tradej
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1012059 Environment:
Last Closed: 2013-09-30 06:02:20 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Mikolaj Izdebski 2013-09-27 11:21:24 UTC
+++ This bug was initially created as a clone of Bug #1012059 +++

Maven JAR Plugin replaces project classifier with JAR file it produces if the JAR has no classifier specified.

Reproducer:
$ cat <<EOF >pom.xml
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.fedoraproject.xmvn.it</groupId>
  <artifactId>rhbz1012059</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <execution>
            <id>jar</id>
            <phase>package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
  	</executions>
      </plugin>
    </plugins>
  </build>
</project>
EOF

$ mkdir -p src/main/webapp/WEB-INF

$ touch src/main/webapp/WEB-INF/web.xml

$ mvn clean install

Actual results:
1) JAR file is installed with "war" extension:
[INFO] Installing /home/kojan/git/xmvn/rep/target/rhbz1012059-1.0.0-SNAPSHOT.jar to /home/kojan/.m2/repository/org/fedoraproject/xmvn/it/rhbz1012059/1.0.0-SNAPSHOT/rhbz1012059-1.0.0-SNAPSHOT.war
2) WAR file is not installed at all

Expected results:
Both JAR and WAR files are installed with correct extensions

Comment 1 Mikolaj Izdebski 2013-09-27 11:23:06 UTC
(In reply to Mikolaj Izdebski from comment #0)
> Maven JAR Plugin replaces project classifier with JAR file it produces if
> the JAR has no classifier specified.

This should be "replaces project *artifact file*"

Comment 2 Michal Srb 2013-09-30 06:02:20 UTC
I did some more testing and I noticed this:

$ cat <<EOF >pom.xml
<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.fedoraproject.xmvn.it</groupId>
    <artifactId>rhbz1012059</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>jar</packaging>     
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <executions>
                    <execution>
                        <id>war</id>
                        <phase>package</phase>
                        <goals>
                            <goal>war</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
EOF

$ mkdir -p src/main/webapp/WEB-INF

$ touch src/main/webapp/WEB-INF/web.xml

$ mvn clean install


Result:
[INFO] Installing /tmp/jar-plugin/target/rhbz1012059-1.0.0-SNAPSHOT.war to /home/msrb/.m2/repository/org/fedoraproject/xmvn/it/rhbz1012059/1.0.0-SNAPSHOT/rhbz1012059-1.0.0-SNAPSHOT.jar

So maven-war-plugin behaves the same. This makes me believe that this is expected behavior for plugins commonly used during package phase. Note you can change project's configuration to get desired result. From my POV it's not a bug.