Maven:プロジェクトのwarファイルの名前を変更する方法は?


91

bird次のコンポーネントを含むプロジェクトがあります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>

およびWebモジュールとして

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

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

Webモジュールは、web-1.0-SNAPSHOT.war
「How can I」という名前のwarファイルを作成し、mavenを使用してこれを次のように名前変更しbird.warますか?


これは役に立ちますか?stackoverflow.com/q/3265544/422353
madth3

回答:


205

warを生成するWebモジュールで以下を使用できます。

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

これにより、目標「war:war」が使用されたときに作成されるbird.warというファイルが作成されます。


「bird.war」という名前でプロジェクトをコンパイルすると、「bird.war.war」という名前の戦争が発生します。
カラシュニ2014年

@Kalaschniは「bird.war」ではなく「bird」を使用するだけです-さまざまなビルドプラグインのそれぞれが適切なファイル拡張子を自動的に追加します(war、jar、ear)
ZachOfAllTrades

11
またはより一般的に、我々は使用することができます:<finalName>${project.artifactId}</finalName>
ギヨームHusta

この答えは、サブモジュールの戦争が親の名前で生成されていた私の問題を解決しましたが、私は望んでいませんでした。問題は、<finalName>要素が親POMに設定されていることでした。その要素を削除すると、サブモジュールの正しい名前で生成されたwarファイルが生成されました。
Oliver Hernandez 2015年

IDEA 20156 2.4では、Payara Glassfish 4.1にデプロイしようとするたびに古いwarファイルが生成され続けるという問題がありました。その場合は、[Open Module Settings]-> [Artifacts]-> [Output Layout]に移動し、warファイルの名前を目的の結果に変更します。IDEAのwarファイル名でコンテキストルートが変わるため、.propertiesファイルに別の構成を設定していると面倒です。
Dr4gon 2016年

25

warプラグインを設定する必要があります:

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

詳細はこちら


11
参考:この回答は無効になりました(maven-war-pluginバージョン3.0.0以降)。issues.apache.org/jira/browse/MWAR-373をご覧ください。
Auke、2016

<warName>は機能しますが(少なくとも3.2.3のwar-pluginで)、常に "-<classifier> .war"が追加されます。<classifier>はデフォルトで空であり、<configuration>内で設定できます。<warName> $ {project.build.finalName} ## $ {buildDateTimeFile} </ warName>を、build-helper-maven-pluginによって設定された「buildDateTimeFile」とともに使用して、「myApp ## 2020-05-29_10-24- 00.war」。これは、複数のwarファイル(dev / test / prod)を一度に作成する場合に特に便利です。
ティース

6

mavenプロジェクトを使用している場合は、以下の手順に従って.warファイル名を変更できます。

mavenプロジェクトのpom.xmlファイルを開き、タグ<build></build>に移動します。

  1. その中で、このタグの間に希望の名前を付けます <finalName></finalName>

    例。:<finalName>krutik</finalName>

    この.warをデプロイした後、次のURLにアクセスできます:
    http:// localhost:8080 / krutik /

  2. スラッシュ「/」を使用してURLにアクセスする場合は、次のように名前を指定する必要があります。

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

    この.warをデプロイした後、次のURLにアクセスできます:
    http:// localhost:8080 / krutik / maheta


5

検索pom.xml>プロジェクトタグ>ビルドタグ。

以下の解決策をお願いします。

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

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

私のために働いた。^^

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.