简体   繁体   中英

Maven release plugin name the files with the build version

When I am performing a maven release:perform the name of the files generated are with the build version meaning:artifactId.version . I need that at least the name of the war generated when doing perform will be only the artifactId name.

my pom is here:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>me.tingz</groupId>
  <artifactId>dashboard</artifactId>
  <packaging>war</packaging>
  <version>15-SNAPSHOT</version>
  <name>dashboard Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <distributionManagement>
        <repository>
            <id>google</id>
            <url>file:/home/ziv/Documents/dashboard/versions/</url>
        </repository>
    </distributionManagement>



  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>

    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.0.4</version>
    </dependency>
    <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1</version>
        </dependency>
  </dependencies>
  <build>

       <finalName>dashboard</finalName>
        <plugins>

        <!-- Release plugin Test!!!! -->
        <plugin>

            <artifactId>maven-release-plugin</artifactId>
            <version>2.5.2</version>
            <configuration>

                <tagBase>
                    file:/home/ziv/tag
                </tagBase>
                 <checkModificationExcludes>
            <checkModificationExclude>pom.xml</checkModificationExclude>
        </checkModificationExcludes>
            </configuration>
        </plugin>

        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-scm-plugin</artifactId>
        <version>1.9.4</version>
        <configuration>
          <username>zivziv</username>

        </configuration>
      </plugin>

        <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>

  </build>
  <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1</version>
        </dependency>
    </dependencies>
  </dependencyManagement>
  <scm>
        <connection>xxx</connection>
        <developerConnection>xxxd</developerConnection>
      <tag>dashboard-11</tag>

  </scm>
</project>

The Maven Release plugin does not "generate" any files. The other plugins involved in the Maven build lifecycle, eg the jar plugin, do generate files. So setting the "finalName" as you did should do the trick, as far as "generation" is involved.

What the Release plugin does is

  • tagging the code in the SCM
  • deploying the artifacts to a repository

The latter one does ALWAYS require a Maven GAV - and the V is for Version. Otherwise, the Release would not be unique. So if you want the Release plugin to deploy an artifact to a repository without a version in its name, you will fail. This is impossible by definition.

You should think about not using the Release plugin at all - after all, it's a crappy plugin. See eg https://axelfontaine.com/blog/final-nail.html

Consider using the wagon-maven-plugin for achieving your goal: http://www.mojohaus.org/wagon-maven-plugin/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM