2012-01-04 19 views
1

私はmavenアセンブリプラグインを使用して、すべての依存関係を1つのjarファイルにまとめます。どうすればmavenに依存関係を再パッケージ化せず、それらをjarファイルとして結果のjarファイルに含めるようにすることができますか?maven do not reback dependencies

現在、以下のプラグイン設定を使用しています。私が正しく質問を理解していれば、あなたが組み立てplugnを実行するかしないときに指定したい

my-jar-with-dependencies.jar 
|-dependency1.jar 
|-|-class1.class 
|-dependency2.jar 
|-|-class2.class 
|-........... 

なく

my-jar-with-dependencies.jar 
|-class1.class 
|-class2.class 
|-............. 
+0

ジャー他のジャーを入れることはできません。 'maven-assembly-plugin'はあなたのアセンブリ記述子ファイルにzipファイル(' zip ')を作成することができますが、実際にアプリケーションを実行するには解凍する必要があります。 –

+0

@dma_kでも、eclipseは組み込みjarを使ってjarファイルをエクスポートできます –

+0

このjarファイルで次に何をしますか?コマンドラインから実行できますか? –

答えて

0

<plugin> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <archive> 
         <manifest> 
          <mainClass>package.Program</mainClass> 
         </manifest> 
        </archive> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
       </configuration> 
      </plugin> 

は、jarファイルの構造を望んでいました。これは、build profileの作成を検討し、アセンブリのプラグイン構成を新しいプロファイルに追加する場合です。 pom.xmlで

追加:

<project> 
... 
<profiles> 
    <profile> 
     <id>myprofile</id> 
     <build> 
      <plugins> 
       <plugin> 
        <artifactId>maven-assembly-plugin</artifactId> 
        <executions> 
         <execution> 
          <phase>package</phase> 
          <goals> 
           <goal>single</goal> 
          </goals> 
         </execution> 
        </executions> 
        <configuration> 
         <archive> 
          <manifest> 
           <mainClass>package.Program</mainClass> 
          </manifest> 
         </archive> 
         <descriptorRefs> 
          <descriptorRef>jar-with-dependencies</descriptorRef> 
         </descriptorRefs> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 
... 
</project> 

をあなたは、このような 'MVN' スクリプトに-Pスイッチを使用することができ、アセンブリのプラグインを実行するためにMavenをしたいときは:

mvn -Pmyprofile clean package 
+0

いいえ、結果のjarファイルに依存性を解凍しないようにアセンブリプラグインを設定したいと思います。それらをjarファイルとして含める必要があります。 –

+0

zip-with-dependencies記述子refを使用する必要があります – Zapodot

関連する問題