アプリケーションで appassemblyr プラグインを使用します。コンパイルに使用されたjdkを示す分類子を使用してアーティファクトを作成するために、Maven構成を移行しています。プロファイルを追加して分類された jar を構築する前に、アプリアセンブラは喜んでスクリプトを作成し、スクリプトをサポートする適切なクラスパスを構築しました。
ただし、分類子を使用してアーティファクトがビルドされているため、クラスパスに間違った jar が追加されています。つまり、正しい groupId、artifactId、および version を参照していますが、分類子はありません。appassemblyr でパスを正しく構築するにはどうすればよいですか?
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.9</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>assemble</goal>
</goals>
</execution>
</executions>
<configuration>
<programs>
<program>
<mainClass>com.package.ObjectClass</mainClass>
<name>ObjectClass</name>
</program>
</programs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven.jar.version}</version>
<configuration>
<classifier>${jdk.version.display}</classifier>
</configuration>
</plugin>
問題を示す一般的な例を次に示します。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>example</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.9</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>assemble</goal>
</goals>
</execution>
</executions>
<configuration>
<programs>
<program>
<mainClass>test.example.TestExample</mainClass>
<name>TestExample</name>
</program>
</programs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<classifier>myClassifier</classifier>
</configuration>
</plugin>
</plugins>
</build>