web-dev-qa-db-ja.com

Mavenプロジェクトのバージョンをwarファイルマニフェストに入れる方法は?

MavenにPOMファイルのバージョン番号を/WEB-INF/manifest.mfの下のWARファイルにあるマニフェストに挿入させる必要があります。

どうすればよいですか? maven-jar-pluginを使用してこれを行うためのドキュメントをJARファイルに簡単にファイルすることができましたが、WARファイルでは機能しません。

助けてくれてありがとう!

24

Maven-war-pluginを使用してそれを理解しました。以下の構成を参照してください。

<plugin>
     <groupId>org.Apache.maven.plugins</groupId>
     <artifactId>maven-war-plugin</artifactId>
     <version>2.1.1</version>
     <configuration>
         <archive>
             <manifestEntries>
                 <version>${project.version}</version>
             </manifestEntries>
         </archive>
     </configuration>
</plugin>
36

または、addDefaultImplementationEntriesまたはaddDefaultSpecificationEntriesフラグを使用して、project.versionプロパティを含むいくつかのエントリを追加することもできます。

addDefaultImplementationEntries

Implementation-Title: ${project.name}
Implementation-Version: ${project.version}
Implementation-Vendor-Id: ${project.groupId}
Implementation-Vendor: ${project.organization.name}
Implementation-URL: ${project.url}

addDefaultSpecificationEntries

Specification-Title: ${project.name}
Specification-Version: ${project.version}
Specification-Vendor: ${project.organization.name}

両方のデフォルト値はfalseです。プロパティが定義されていない場合(例:project.organization.name)、その行はマニフェストから除外されます。

これは、次のようにmaven-war-plugin構成に入る可能性があります。

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <archive>
            <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
            </manifest>
        </archive>
    </configuration>
</plugin>
19
BrianV