2014年12月19日金曜日

Mavenで実行可能Jarを作成する方法

概要

「jar -jar hoge.jar」みたいな感じで実行できるjarを作成する方法です
packageのゴールを使って生成できるようにします

環境

  • CentOS release 5.10 (Final)
  • Maven 3.1.0
  • maven-assembly-plugin 2.5.2

設定

pom.xml設定

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.5.2</version>
      <configuration>
        <finalName>App</finalName>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <archive>
          <manifest>
            <mainClass>com.kakakikikeke.sample.App</mainClass>
          </manifest>
        </archive>
      </configuration>
      <executions>
        <execution>
          <id>make-assembly</id>
          <phase>package</phase>
          <goals>
            <goal>single</goal> <!-- goals == mojos -->
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

変更すべき箇所は<mainClass>です
環境に合わせてパッケージ名から指定してください
<finalName>で作成するJarのprefixを指定できます

また、上記のタグを<project>タグの直下に記載してください

実行

mvn clean compile package

完了するとtarget配下にtarget/App-jar-with-dependencies.jarというjarファイルができていると思います
実行する場合は

java -jar target/App-jar-with-dependencies.jar

で実行してください
実行可能jarなので必要なライブラリやクラスファイルは全部jarの中に同梱されています

0 件のコメント:

コメントを投稿