2016-03-22 13 views
1

私は10の依存関係のようなmavenプロジェクトを持っています。前に、私は一つの瓶にmaven-assembly-pluginのおかげでそのすべてをパックするために使用:jarと新しいjar内のすべての依存関係をmavenでパッケージ化する方法

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.4</version> 
    <executions> 
     <execution> 
      <id>create-executable-jar</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
      <configuration> 
       <descriptors> 
        <descriptor>assembly.xml</descriptor> 
       </descriptors> 
       <archive> 
        <manifest> 
         <mainClass>myApp.Main</mainClass> 
        </manifest> 
       </archive> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

しかし、今は、私は前にステップを追加しました。私は自分のアプリケーションのjarを生成するプラグインを持っています。ですから、アセンブリプラグインでこのJARに依存関係を追加するだけです。残念ながら、プラグインはこのjarを使用しませんが、代わりにコンパイラの結果を使用しているようです。

コンパイラの結果ではなく、以前に生成されたjarをプラグインで使用するよう指定する方法はありますか?

+0

*このjar *に依存関係を追加することを意味しますか?誰がJARを生成しますか?これはそれほど単純ではありません。あなたは適切なマニフェストを持っている必要があります。 – Tunaki

+0

基本的には、http://stackoverflow.com/questions/36150297/how-to-assembly-a-project-after-using-proguard-maven-plugin?noredirect=1#comment59948505_36150297と同じ質問ですが、別のアプローチ。 Proguardは難読化されたjarを生成することに成功しましたが、後でどのように依存関係を追加するのか分かりません。依存関係を追加して難読化することもできますが、Proguardはこのケースで失敗します(未解決の参照...) – Sharcoux

+0

それはあなたがそれをしたいと思う方法ではありません。絶対にありません。他の質問で問題を解決してください、あなたはここで自分を傷つけています。 – Tunaki

答えて

3

maven-shade-pluginをお試しください。

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-shade-plugin</artifactId> 
      <version>2.3</version> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>shade</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
+1

OMG!出来た ! 3日私はこれと戦っている、私は怒っていた。私はあなたの人を抱きしめたい! – Sharcoux

+0

ちょうど助けてうれしいです - 抱擁は必要ありません; ^) – Stormcloud

関連する問題