で発現させるクラスパスを追加します。は、私は次のカスタムアセンブリを持つカスタムアセンブリ・ディスクリプタ
<assembly>
<id>full</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${project.build.outputDirectory}</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
</fileSets>
</assembly>
そして、次の構成セクション:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>com.example.MyExample</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>./lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Mavenのアセンブリのプラグインのドキュメントによると、これをクラスパス項目をマニフェストファイルに追加する必要がありますが、動作しません。単一ではなく廃止予定のアセンブリ目的を使用すると、動作します。
アーカイブセクションがjarフォーマットでのみ利用可能であると言われていた人がいましたが、それは私が使用しているものです。
アセンブリ:アセンブリを非推奨にしたとき、これは正しくこれを行うための新しい方法を定義しましたか?非難された機能を使用するのは本当に好きではありませんが、問題が解決して正しく文書化されない場合は、これを回避する方法がわかりません。
これを正しく行う方法の例はありますか?
私はjarから依存関係を削除し、jarファイルと一緒にlibフォルダに置いています。しかし、まだ問題は残っている。アセンブリプラグインは指定されたクラスパスを追加しません。 – davija
これは想定されていません。 jarプラグインにはその仕事があります。 – bmargulies
アセンブリプラグインのドキュメントによると、クラスパスを追加するよう指示した場合、それは行います。これは現在廃止されている他の目標でも機能します。ドキュメントを確認してください – davija