Maven を使用して依存関係のある実行可能/実行可能な JAR を作成するにはどうすればよいでしょうか? 質問する

Maven を使用して依存関係のある実行可能/実行可能な JAR を作成するにはどうすればよいでしょうか? 質問する

配布用にプロジェクトを単一の実行可能 JAR にパッケージ化したいと考えています。

Maven プロジェクトですべての依存関係 JAR を出力 JAR にパッケージ化するにはどうすればよいですか?

ベストアンサー1

<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>fully.qualified.MainClass</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
    </plugin>
  </plugins>
</build>

そしてそれを実行すると

mvn clean compile assembly:single

コンパイル目標は、assembly:single の前に追加する必要があります。そうしないと、独自のプロジェクトのコードが含まれなくなります。

詳細はコメントをご覧ください。


通常、この目標は自動的に実行されるビルド フェーズに関連付けられます。これによりmvn install、デプロイメント/リリースの実行時に JAR がビルドされることが保証されます。

<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>fully.qualified.MainClass</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
      <executions>
        <execution>
          <id>make-assembly</id> <!-- this is used for inheritance merges -->
          <phase>package</phase> <!-- bind to the packaging phase -->
          <goals>
            <goal>single</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

おすすめ記事