1. ホーム
  2. java

[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?

2022-03-15 08:13:30

質問

私のプロジェクトを1つの実行可能なJARにパッケージして配布したいのですが、どうすればいいですか?

Mavenプロジェクトで、すべての依存JARを出力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>
    </plugin>
  </plugins>
</build>

で実行し

mvn clean compile assembly:single

コンパイルゴールは、assembly:singleの前に追加する必要があり、さもなければ、あなた自身のプロジェクトのコードは含まれません。

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


一般的にこの目標は、自動的に実行されるビルドフェーズに結びつけられます。を実行する際にJARがビルドされることを保証します。 mvn install またはデプロイ/リリースの実行。

<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>