2016-08-22 6 views
2

は、私はちょうど新しいMavenプロジェクトを作成し、POMファイルhttp://undertow.io/downloads.htmlに次の、私はすべてがうまく動作するコードを実行した場合今http://undertow.io/index.htmlMavenプロジェクトの "fat jar"を作るには? IntelliJのを使用して

ファイルMain.javaに以下を追加しましたが、私はこれをどのように作るのですかpomファイルのすべての依存関係を含む "fat jar"として、私はちょうどjava -jar my.jarで実行できるでしょうか?あなたがSpring Bootアプリでできるように。

+1

これを行うと、重要な情報を含む可能性のある構成ライブラリのマニフェストが根絶されます。 – VGR

+3

これは、依存関係を持つ実行可能なjarをmavenを使って作る方法とはどう違うのですか? http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven – Acewin

答えて

11

Maven Shade Pluginこれはよく行います。

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-shade-plugin</artifactId> 
     <version>2.4.3</version> 
     <executions> 
     <execution> 
      <phase>package</phase> 
      <goals> 
      <goal>shade</goal> 
      </goals> 
      <configuration> 
      <transformers> 
       <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
       <mainClass>package.Main</mainClass> 
       </transformer> 
      </transformers> 
      </configuration> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 
+0

ありがとう - これは私にとってはうまくいくが、デフォルトでは2つのjarファイルが作成されているようだ。私はどのように肥満を選ぶことができますか? –

+0

もう一つのjarは 'maven-jar-plugin'によって作成されます。第二の瓶は本当にあなたの方法ですか? – Stewart

+0

私はそれをやや混乱させていると思います。単純なスイッチのようなものを持っているのはうれしいでしょう。 –

5

1)が実行可能なjarファイルを作成します

<packaging>jar</packaging> 

3)mvn packageをジャーにpom.xmlファイル

<build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <version>1.4.0.RELEASE</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>repackage</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 

2)に変更し、パッキンにSpring-boot-maven-pluginを追加します。

+1

私はこのソリューションが好きですが、私はあなたがバージョンを削除するように編集することを検討すべきだと思いますプラグインから削除し、pomにspring-boot-start-parentを指す親を指定させます。 – wobblycogs

関連する問題