.java
短い: 一連の jar からすべてのファイルとすべてのフォルダーをフィルター処理しMETA-INF
、その jar のクラス ファイルとリソースを 1 つの jar にパッケージ化する必要があります。私は現在 を使用していますmaven-assembly-plugin
が、maven ビルド プロセスに簡単に統合できる限り、別のものを試してみます。
long: ツールのさまざまな開発段階を管理するために Maven を使用しています。基本段階はフリーウェア、第 2 段階はいくつかの追加機能、第 3 段階はすべての機能)
これまでのところ問題なく動作しています。プロファイルを使用して、さまざまなソース ディレクトリをクラスパスに追加すると、ソースはproject.jar
.
- 最初の問題:
.java
プロファイルを介してプロジェクトに含まれるソースは、project.jar
.
次に、 を使用して依存関係も含むmaven-assembly-plugin
を構築final.jar
し、最後に launch4j を使用して Windows (現在のターゲット プラットフォーム) 用の実行可能ファイルを生成します。
- 2 番目の問題:
META-INF
依存関係の jar のさまざまな部分が混在しているためfinal.jar
、それらをすべてスキップする必要があります。
assembly.xml
タグを使用して の例を検索しましたが、と<exclude>
の組み合わせを使用した例は見つかりませんでした。私はそれができると確信さえしていません。dependencySet
<exclude>*.java</exclude>
ここに私のassembly.xmlがあります:
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>jar-with-dependencies</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<unpack>true</unpack>
<scope>runtime</scope>
<useDefaultExcludes>true</useDefaultExcludes>
<!--<useTransitiveFiltering>true</useTransitiveFiltering>-->
<!--<useStrictFiltering>true</useStrictFiltering>-->
<excludes>
<exclude>META-INF</exclude>
<exclude>**/*.java</exclude>
<exclude>*.java</exclude>
<exclude>*:sources</exclude>
</excludes>
</dependencySet>
</dependencySets>
</assembly>
これまでの私の研究:
私はグーグルで検索しましexample assembly.xml exclude java
たが、私の問題をカバーする例を見つけることができませんでした. (私も過去数日間グーグルで検索しましたが、見つけたすべてを保存しませんでした)http://maven.apache.org/plugins/maven-assembly-plugin/advanced-descriptor-topics.htmlを読みましたが、適用できませんでしたその知識を私の問題に。