Wie erstelle ich ein Maven-Projekt ohne Version?


80

Ich habe ein Maven-Projekt, das ich ohne Version erstellen möchte.

Wenn ich das Projekt jetzt mit maven erstelle, wird es erstellt, commonjerseylib-1.0.waraber ich muss es commonjerseylib.warerstellen.

Außerdem entferne ich das <version>Tag von, pom.xmlaber Maven erstellt warstandardmäßig immer noch mit Version 1.0.

Mein pom.xml:

      <modelVersion>4.0.0</modelVersion>
      <groupId>commonjerseylib</groupId>
      <artifactId>commonjerseylib</artifactId>
      <packaging>ear</packaging>
      <name>commonjerseylib</name>
      <!--<version>1.0</version>-->

Wie baue ich es ohne Version?

Antworten:


166

Sie benötigen immer eine Versionsnummer für ein Projekt. Es ist jedoch möglich, den Namen des generierten Pakets (JAR, WAR, EAR usw.) über das <finalName>Element im POM zu ändern .

<project>
    ...
    <build>
        ...
        <finalName>${project.artifactId}</finalName>
        ...
    </build>
    ...
</project>

oder in älteren Versionen von maven:

        ...
        <finalName>${artifactId}</finalName>
        ...

Standardmäßig lautet der endgültige Name ${project.artifactId}-${project.version}, dies kann jedoch in etwas anderes geändert werden. Dies wirkt sich nur auf den Namen des im targetVerzeichnis erstellten Pakets aus . Der Dateiname im lokalen Repository, der in Remote-Repositorys hochgeladen wird, hat immer eine Versionsnummer.

Weitere Informationen finden Sie in der POM-Referenzdokumentation .


Das ist perfekt, klar und sauber!
Thomas

7
Ab mindestens Maven 3.0.3 ist $ {arifactId} zugunsten von $ {project.artifactId} veraltet.
Glenn

2
@prunge: Danke für die Antwort. Kennen Sie eine Möglichkeit, wie sich dies auf den Dateinamen im lokalen Repository und in den Remote-Repositorys auswirkt?
Namalfernandolk

Beachten Sie, dass es nicht funktioniert, von der Befehlszeile aus zu überschreiben, wie -Dproject.build.finalName=whatever- wenn Sie den Namen des Jars
Andrew Spencer

11

im Maven War Plugin im Build ändern

<warName> ${artifactId} </warName>

        <build>
           ..........
             <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <!-- web.xml is not mandatory since JavaEE 5 -->
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                    <warName>${artifactId}</warName>
                </configuration>
            </plugin>
         .............
       <build>

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.