私はmaven-jar-plugin
を使ってjarを構築し、maven-assembly-plugin
を使用してlib/
ディレクトリのJAR
の隣にすべての依存関係を置きます。Maven jarプラグイン - SNAPSHOT依存関係の間違ったクラスパスエントリ
このプロジェクトでスナップショットの依存関係を使用すると、Class-Pathエントリポイントはその依存関係の別のJAR
を実際にパッケージ化します。ここで
は一例です:
<dependency>
<groupId>x.y.z</groupId>
<artifactId>artifact</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
JAR
lib
direcotyrインティその依存関係のためにパッケージ化されたメインJAR
秒で artifact-1.0-SNAPSHOT
しかしClass-Path
エントリはマニフェストはここに起こって、その理由は何lib/artifact-1.0-20170201.104414-8.jar
ですか?
ありがとうございます。
マイassembly.xml
<dependencySets>
<dependencySet>
<useProjectArtifact>false</useProjectArtifact>
<useTransitiveDependencies>true</useTransitiveDependencies>
<outputDirectory>lib</outputDirectory>
<unpack>false</unpack>
</dependencySet>
</dependencySets>
プラグイン:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.2</version>
<executions>
<execution>
<id>assembly</id>
<phase>package</phase>
<goals>
<goal>attached</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<finalName>${dist.name}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptor>${basedir}/assembly.xml</descriptor>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<Class-Path>.</Class-Path>
</manifestEntries>
</archive>
<outputDirectory>${dist.dir}</outputDirectory>
</configuration>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>