バージョンなしでMavenプロジェクトをビルドする方法は?


81

バージョンなしでビルドしたいMavenプロジェクトがあります。

これで、Mavenを使用してプロジェクトをビルドすると、これcommonjerseylib-1.0.warcommonjerseylib.war作成されますが、作成する必要があります。

それに加えて、<version>タグを削除しましたpom.xmlが、Mavenはwarデフォルトでバージョン1.0で作成しています。

私のpom.xml

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

バージョンなしでビルドする方法は?

回答:


169

プロジェクトには常にバージョン番号が必要ですが、生成されたパッケージの名前(JAR、WAR、EARなど)<finalName>は、POMの要素を介して変更できます。

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

または古いバージョンのMavenの場合:

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

デフォルトでは、finalNameはですが${project.artifactId}-${project.version}、これは別の名前に変更できます。これは、targetディレクトリに作成されたパッケージの名前にのみ影響します。ローカルリポジトリにあり、リモートリポジトリにアップロードされたファイル名には、常にバージョン番号が付けられます。

詳細については、POMリファレンスドキュメント参照してください。


それは完璧で、クリアでクリーンです!
トーマス

7
少なくともMaven3.0.3以降、$ {artifactId}は非推奨になり$ {project.artifactId}が優先されます。
グレン

2
@prunge:答えてくれてありがとう。ローカルリポジトリとリモートリポジトリのファイル名に影響するので、それを行う方法を知っていますか。
namalfernandolk 2015

それはのようなコマンドラインからオーバーライドに仕事をしないことに注意してください-Dproject.build.finalName=whatever-あなたは、コマンドラインでjarファイルの名前を指定できるようにしたい場合は、参照stackoverflow.com/a/13877971/587365
アンドリュースペンサー

12

ビルドのMaven戦争プラグインで、変更

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

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