2011-02-09 10 views
8

私はjar-depend-dependencies descriptorRefを提供することでjarファイルを構築したいmavenized javaプロジェクト(Maven2)を持っていますpom.xml。jarをビルドし、それをmaven-assembly-pluginを持つzipに組み込みます。

しかし、私はまた、いくつかの.exeファイルと.batファイルを含むzipファイルに、jarを呼び出すbinフォルダーからプロジェクトを展開する必要があります。 (私はTanukiを使用していますが、私は思うユースケースについては関係ありません)

つまり、私のソース(および依存関係)が最初にjarにパッケージ化され、そのjarがbinフォルダにあるいくつかの追加ファイルを含むzip。

pom.xmlと 'assembly'.xmlにはどうすればよいですか?

答えて

8

これを行うには、Maven-assembly-pluginが最適なツールです。

このプラグインは、pomの「ビルド」セクションで宣言し、プロジェクトのルートに別の構成ファイル "assembly.xml"を作成する必要があります。このファイルでは、あなたのzipファイルの内容を定義します。

設定オプションは、公式サイトに記載されている。ここで

http://maven.apache.org/plugins/maven-assembly-plugin/ニーズに合わせなければならない、このプラグインの基本的な構成例です。

POMの設定:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
     <finalName>zipfile</finalName> 
     <descriptors> 
      <descriptor>${basedir}/assembly.xml</descriptor> 
     </descriptors> 
    </configuration> 
    <executions> 
     <execution> 
      <id>make-assembly</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

アセンブリの設定:あなたの答えのための

<assembly> 
    <formats> 
     <format>zip</format> 
    </formats> 

    <fileSets> 
     <fileSet> 
      <directory>to_complete</directory> 
      <outputDirectory /> 
      <includes> 
       <include>**/*.jar</include> 
       <include>**/*.bat</include> 
       <include>**/*.exe</include> 
      </includes> 
     </fileSet> 
    </fileSets> 
</assembly> 
+0

おかげで、私はそれが働いて得るために必要不可欠なキックスタートでした。 – NomeN

+1

私は瓶を作る別の記述子を追加する必要がありました。実際には、jar-with-dependenciesデスクリプタ形式を、指定したサイトからコピーしました.jar-with-dependencies descriptorRefを使用してzipビルドをエンベッドしました。つまり、最初に「sic」jarを作成してからzipを作成し、次にdepend-of-dependencies.jarを作成します。これは最初の(無駄な)jarでジップを作成しますが、2番目の、奇妙な権利はありません。 – NomeN

関連する問題