Maven: Wie benenne ich die Kriegsdatei für das Projekt um?

Lesezeit: 4 Minuten

Benutzer-Avatar
Tagträumer

Ich habe ein Projekt bird mit folgenden Komponenten drin pom.xml

   <groupId>com.myorg</groupId>
    <artifactId>bird</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>bird</name>

    <modules>
        <module>persistence</module>
        <module>business</module>
        <module>service</module>
        <module>web</module>
    </modules>

und das Webmodul pom.xml

   <parent>
        <artifactId>bird</artifactId>
        <groupId>com.myorg</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>web</artifactId>
    <packaging>war</packaging>  

Das Webmodul erstellt eine WAR-Datei mit dem Namen web-1.0-SNAPSHOT.war

Wie kann ich Maven konfigurieren, um es als zu erstellen bird.war?

  • Hilft das? stackoverflow.com/q/3265544/422353

    – madth3

    23. Januar 2013 um 20:16 Uhr

Benutzer-Avatar
Sébastien Le Callonnec

Sie können Folgendes im Webmodul verwenden, das den Krieg produziert:

<build>
  <finalName>bird</finalName>
 . . .
</build>

Dies führt dazu, dass eine Datei namens bird.war erstellt wird, wenn das Ziel „war:war“ verwendet wird.

  • Wenn ich mein Projekt mit dem Namen “bird.war” kompiliere, bekomme ich einen Krieg namens “bird.war.war”.

    – Kalaschni

    12. Mai 2014 um 15:35 Uhr

  • @Kalaschni verwenden Sie einfach ‘bird’, nicht ‘bird.war’ – jedes der verschiedenen Build-Plugins fügt automatisch die entsprechende Dateierweiterung hinzu (war, jar, ear)

    – ZachOfAllTrades

    8. September 2014 um 15:28 Uhr

  • Oder allgemeiner können wir verwenden: <finalName>${project.artifactId}</finalName>

    – Guillaume Husta

    23. Oktober 2014 um 13:18 Uhr

  • Diese Antwort löste mein Problem, bei dem der Krieg eines Untermoduls mit dem Namen des übergeordneten Elements generiert wurde, was ich nicht wollte. Das Problem war, dass das Element im übergeordneten POM festgelegt wurde. Das Löschen dieses Elements führte dazu, dass die WAR-Datei mit dem korrekten Namen des Submoduls generiert wurde.

    – Oliver Hernández

    11. Juni 2015 um 17:25 Uhr

  • In IDEA 20156 2.4 hatte ich das zusätzliche Problem, dass es jedes Mal, wenn ich versuchte, es auf einem Payara Glassfish 4.1 bereitzustellen, die alte Kriegsdatei generierte. Gehen Sie in diesem Fall zu Open Module Settings -> Artifacts -> Output Layout und benennen Sie die Kriegsdatei in das gewünschte Ergebnis um. Ich brauchte das, weil sich das Kontextstammverzeichnis mit dem Namen der Kriegsdatei in IDEA ändert, was ein Problem ist, wenn Sie eine andere Konfiguration in der .properties-Datei haben.

    – Dr4gon

    14. November 2016 um 19:29 Uhr

Sie müssen das War-Plugin konfigurieren:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <warName>bird.war</warName>
        </configuration>
      </plugin>
    </plugins>
  </build>
  ...
</project>

Mehr Info hier

  • FYI: Diese Antwort ist nicht mehr gültig (seit Maven-War-Plugin Version 3.0.0 und höher). Sehen issues.apache.org/jira/browse/MWAR-373.

    – Auke

    6. September 2016 um 13:47 Uhr

  • funktioniert (zumindest im War-Plugin in 3.2.3), aber es hängt immer “-.war” an, wobei standardmäßig leer ist und innerhalb von gesetzt werden kann. Ich verwende ${project.build.finalName}##${buildDateTimeFile} mit „buildDateTimeFile“, das von build-helper-maven-plugin festgelegt wurde, um „myApp##2020-05-29_10-24-“ zu erhalten. 00.krieg”. Dies ist besonders nützlich, wenn Sie mehrere War-Dateien (dev/test/prod) auf einmal erstellen.

    – Thies

    29. Mai 2020 um 8:23 Uhr


Suchen Sie nach pom.xml > Projekt-Tag > Build-Tag.

Ich hätte gerne eine Lösung unten.

<artifactId>bird</artifactId>
<name>bird</name>

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

Hat für mich funktioniert. ^^

Benutzer-Avatar
Krutik

Sie können den folgenden Schritt ausführen, um den Namen der .war-Datei zu ändern, wenn Sie das Maven-Projekt verwenden.

Öffnen Sie die Datei pom.xml Ihres Maven-Projekts und gehen Sie zum Tag <build></build>,

  1. Geben Sie dabei Ihren gewünschten Namen zwischen diesen Tags ein:
    <finalName></finalName>.

    ex. : <finalName>krutik</finalName>

    Nach der Bereitstellung dieser .war-Datei können Sie auf die URL zugreifen mit:
    http://localhost:8080/krutik/

  2. Wenn Sie mit Schrägstrich auf die URL zugreifen möchten “https://stackoverflow.com/” dann müssen Sie den Namen wie folgt angeben:

    ex : <finalName>krutik#maheta</finalName>

    Nach der Bereitstellung dieser .war-Datei können Sie auf die URL zugreifen mit:
    http://localhost:8080/krutik/maheta

1311620cookie-checkMaven: Wie benenne ich die Kriegsdatei für das Projekt um?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy