Skip to content

Instantly share code, notes, and snippets.

@Buravo46
Last active February 27, 2017 12:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Buravo46/da33f8494172a14847ebb90f0f562f25 to your computer and use it in GitHub Desktop.
Save Buravo46/da33f8494172a14847ebb90f0f562f25 to your computer and use it in GitHub Desktop.
【Maven】外部依存のJarファイルを含めてJarファイルを作成する

目的

Mavenプロジェクトで、使用する依存ライブラリも含めてJarファイル化したい。

ZIPやTARへの圧縮処理をするJarファイルを作成するために、apache-common-compressを使う。 Jarファイル化しても、クラス定義がロードされていないというエラーが出力されてしまう。 そのため、apache-common-compressを含めてJarファイル化したい。

手順

Maven Assembly Pluginを導入し、依存ライブラリも含めてJarファイル化する。 以下手順となる。

  • pom.xmlに以下を記載する。
<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <!-- NOTE: We don't need a groupId specification because the group is
             org.apache.maven.plugins ...which is assumed by default.
         -->
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        [...]
</project>
  • mavenでパッケージを作成
maven package
  • targetディレクトリ以下のXXXX-jar-with-dependencies.jarファイルを使用する。
java -jar XXXX-jar-with-dependencies.jar

参考

Maven Assembly Plugin - Usage

7.12. 配布用のアーカイブ (zip や tar.gz など) を作成する

mavenで実行可能なjarファイルと依存ライブラリを含めたzipアーカイブを作成する

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment