16

重複の可能性:
Maven を使用して、プロジェクトの jar とすべての依存 jar を含む配布可能ファイルを作成するにはどうすればよいですか?

盲目かもしれませんが、maven アセンブリ プラグインは、現在の project.jar とすべての依存関係の jar を含む zip ファイルを作成できますか? 「bin」IDには私のproject.jarだけが含まれ、jar-with-dependenciesはすべてを1つのjarにまとめますが、これは私が好きではありません。

4

3 に答える 3

32

必要なことを行うには、カスタム アセンブリ記述子が必要です。これは、bin と jar-with-dependencies の定義済み記述子の組み合わせです。フォルダーで呼び出されるカスタム アセンブリ記述子を作成しassembly.xmlました。src/main/assembly

基本的に、依存関係セットが追加されたビン記述子の例を次に示します。

    <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>
    <format>tar.bz2</format>
    <format>zip</format>
  </formats>
  <fileSets>
    <fileSet>
      <directory>${project.basedir}</directory>
      <outputDirectory>/</outputDirectory>
      <includes>
        <include>README*</include>
        <include>LICENSE*</include>
        <include>NOTICE*</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>${project.build.directory}/site</directory>
      <outputDirectory>docs</outputDirectory>
    </fileSet>
  </fileSets>
  <dependencySets>
    <dependencySet>
      <outputDirectory>/</outputDirectory>
      <useProjectArtifact>true</useProjectArtifact>
      <scope>runtime</scope>
    </dependencySet>
  </dependencySets>
</assembly>

次に、descriptorRef の代わりに記述子を使用するように pom を変更して、カスタム記述子がどこにあるかを伝えます。

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.2.1</version>
        <configuration>
          <descriptors>
            <descriptor>src/main/assembly/assembly.xml</descriptor>
          </descriptors>
        </configuration>
        [...]
</project>
于 2011-04-26T19:12:16.440 に答える
3

こちらの例 502をご覧ください...すべての依存関係などを tar.gz/zip などにパッケージ化する方法の例があります。

于 2011-04-19T14:47:18.567 に答える
1

fat-jarプラグインを見てください。

于 2011-04-19T13:55:58.493 に答える