基本的に、デフォルトのjarファイルに加えて、という名前のjarファイルを生成したい<project.name>.jar
(私の場合は<project.name> + <project.version>.jar
. 注意 : これ<project.name>.jar
はデフォルトの jar と同じですが、名前は同じです。
そして、この追加のjarには、デフォルトで生成されたjarのマニフェストファイルである以下のようなマニフェストファイルが必要です
anifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: XXX
Start-Class: com.XXXX.XXX.Application
Spring-Boot-Version: 1.3.1.RELEASE
Created-By: Apache Maven
Build-Jdk: 1.8.0_74
Main-Class: org.springframework.boot.loader.JarLauncher
次のようにブロックを追加しています
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
....
<execution>
<id>copy-jar</id>
<phase>package</phase>
<goals><goal>jar</goal></goals>
<configuration>
<finalName>${project.name}</finalName>
</configuration>
</execution>
<execution>
</plugin>
しかし、私の場合、追加のjarで生成されたマニフェストファイルには、次のinpartフィールドがありません:
Start-Class
Main-Class
...
そのため、展開できませんでした。要件が奇妙に聞こえることは知っていますが、問題は明らかです。デプロイ用の正しく完全なマニフェストファイルを持つjarをmavenに生成させる方法は?
//完全なプラグイン部分
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals><goal>test-jar</goal></goals>
</execution>
<execution>
<id>copy-jar</id>
<phase>package</phase>
<goals><goal>jar</goal></goals>
<configuration>
<finalName>${project.artifactId}</finalName>
</configuration>
</execution>
<execution>
<id>dto-jar</id>
<goals><goal>jar</goal></goals>
<phase>package</phase>
<configuration>
<finalName>${project.artifactId}-dto</finalName>
<includes>
<include>**/dto/*</include>
<include>**/dto</include>
<include>**/exceptions/*</include>
<include>**/exceptions</include>
<include>**/utils/*</include>
<include>**/utils</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>