1

スタンドアロンのJavaアプリケーションをパッケージ化するための代替手段は何ですか?

1) 2 つ以上の jar のリソース パス内の競合するファイル (同じ名前、たとえば、reference.xml) は、幸運な jar によってオーバーライドされます。

2) 単一の jar を交換するには、抽出してマージし、再度圧縮する必要があります。

libフォルダー内のすべてのライブラリと、マニフェストエントリを含むメインクラスファイルのjarを使用して、展開されたwarファイルの行に関する解決策はありますか。私はアリでそれをしたと確信しており、確かにmavenでも行うことができました。

4

2 に答える 2

2

アセンブリ プラグインは、カスタム記述子を使用する場合に適しています。

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
    <descriptors>
        <descriptor>assembly.xml</descriptor>
    </descriptors>
</configuration>
</plugin>

そして、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>bin</id>
<formats>
    <format>tar.gz</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
    <fileSet>
        <directory>${project.build.directory}</directory>
        <outputDirectory>/</outputDirectory>
        <includes>
            <include>${project.artifactId}-${project.version}.jar</include>
        </includes>
    </fileSet>
</fileSets>
<dependencySets>
    <dependencySet>
        <outputDirectory>/lib</outputDirectory>
        <useProjectArtifact>false</useProjectArtifact>
        <unpack>false</unpack>
    </dependencySet>
</dependencySets>
</assembly>

すべての依存関係は、プロジェクトの jar ファイルの隣にある lib ディレクトリの個別の jar になります。

于 2012-08-23T07:54:10.927 に答える
1

私は、Mojo の AppAssembler Maven プラグインを使用してディストリビューションを作成し、Maven アセンブリ プラグインtar.gzを使用して、ディストリビューションを構成するファイルまたはファイルにすべてをラップする傾向がありzipます...時々、さらに進んで、Mojo の Unix Maven プラグイン.debを使用して.rpmインストーラーを作成します、また、 Mojo の NSIS Maven プラグインを使用する Windows インストーラーが必要な人から良いことを聞いていますが、NPanday の WiX Maven プラグインでも同様のことができるはずで、以前に Windows インストーラーを生成する必要があったときに、独自の WiX Maven プラグインを作成しましたが、ソース コードはそれは私の以前の雇用主に残っているからです。

AppAssemblerルートを下る場合は、 repositoryLayoutを好むのではないかと思います。flat

于 2012-08-23T08:46:01.980 に答える