Maven: Bagaimana cara mengganti nama file perang untuk proyek tersebut?

93

Saya memiliki proyek birddengan komponen berikut dalampom.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>

dan modul web sebagai

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

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

modul web membuat file perang bernama web-1.0-SNAPSHOT.war
Bagaimana saya bisa, menggunakan maven mengubah nama ini menjadi bird.war?

pelamun
sumber
Apakah ini membantu? stackoverflow.com/q/3265544/422353
madth3

Jawaban:

209

Anda dapat menggunakan yang berikut di modul web yang menghasilkan perang:

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

Ini mengarah ke file bernama bird.war yang akan dibuat saat tujuan "perang: perang" digunakan.

Sébastien Le Callonnec
sumber
ketika saya menyusun proyek saya dengan nama "bird.war" saya mendapatkan perang yang bernama "bird.war.war".
Kalaschni
@Kalaschni cukup gunakan 'bird', bukan 'bird.war' - masing-masing dari berbagai plugin build menambahkan ekstensi file yang sesuai secara otomatis (war, jar, ear)
ZachOfAllTrade
11
Atau lebih umum, kita dapat menggunakan:<finalName>${project.artifactId}</finalName>
Guillaume Husta
Jawaban ini memecahkan masalah saya di mana perang submodul yang dihasilkan dengan nama orang tua, yang tidak saya inginkan. Masalahnya adalah elemen <finalName> disetel di POM induk. Menghapus elemen itu mengakibatkan file perang dibuat dengan nama submodul yang benar.
Oliver Hernandez
Dalam IDEA 20156 2.4 saya memiliki masalah tambahan yang terus menghasilkan file perang lama setiap kali saya mencoba menerapkan pada Payara Glassfish 4.1. Ketika itu terjadi, pergi ke Buka Pengaturan Modul -> Artefak -> Tata Letak Output dan ganti nama file perang ke hasil yang Anda inginkan. Saya membutuhkan ini karena akar konteks berubah dengan nama file perang di IDEA yang merepotkan ketika Anda memiliki konfigurasi yang berbeda di file .properties.
Dr4gon
26

Anda perlu mengkonfigurasi plugin perang:

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

Info selengkapnya di sini

Andres Olarte
sumber
11
FYI: Jawaban ini tidak lagi valid (sejak maven-war-plugin versi 3.0.0 dan seterusnya). Lihat issues.apache.org/jira/browse/MWAR-373 .
Auke
<warName> berfungsi (setidaknya di war-plugin di 3.2.3) tetapi selalu menambahkan "- <classifier> .war" di mana <classifier> kosong secara default dan dapat disetel di dalam <configuration>. Saya menggunakan <warName> $ {project.build.finalName} ## $ {buildDateTimeFile} </warName> dengan "buildDateTimeFile" yang disetel oleh build-helper-maven-plugin untuk mendapatkan "myApp ## 2020-05-29_10-24- 00. perang ". Ini sangat berguna jika Anda membuat beberapa file perang (dev / test / prod) sekaligus.
Thies
6

Anda dapat mengikuti langkah di bawah ini untuk mengubah nama file .war jika Anda menggunakan proyek maven.

Buka file pom.xml proyek maven Anda dan buka tag <build></build>,

  1. Dalam memberikan nama yang Anda inginkan antara tag ini: <finalName></finalName>.

    ex. :<finalName>krutik</finalName>

    Setelah menerapkan .war ini Anda akan dapat mengakses url dengan:
    http: // localhost: 8080 / krutik /

  2. Jika Anda ingin mengakses url dengan garis miring '/' maka Anda harus menentukan nama seperti di bawah ini:

    mis .: <finalName>krutik#maheta</finalName>

    Setelah menerapkan .war ini, Anda akan dapat mengakses url dengan:
    http: // localhost: 8080 / krutik / maheta

Krutik
sumber
5

Cari pom.xml> tag proyek> tag build.

Saya ingin solusi di bawah ini.

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

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

Bekerja untuk saya. ^^

bamossza.dll
sumber