2011-10-20 8 views
2

私はmavenマルチモジュールプロジェクトを持っています。あるモジュールでは、maven-assembly-pluginを使って2つのZIPファイルを作成します。この設定はMavenリリース:アセンブリプラグインでエラーが発生する(マルチモジュールプロジェクト)

<configuration> 
      <finalName>${sample.source.zip.filename}</finalName> 
      <appendAssemblyId>false</appendAssemblyId> 
      <outputDirectory>${project.build.directory}/zip</outputDirectory> 
      <descriptors>         
       <descriptor>src/main/assembly/sample-source.xml</descriptor> 
      </descriptors> 
     </configuration> 


at the war packaging, we put this 2 zip files into the war files, with the maven-war-plugin 

    ... 
    <resource> 
     <directory>${project.build.directory}/zip</directory> 
     <targetPath>client</targetPath> 
    </resource> 
    ... </code></pre> 

でもOKです。しかし、インストール段階では、これらのzipファイルを同じファイル名のローカルリポジトリにコピーします。 (module_name & version_number & .zip)そして私は、なぜそれがzipファイルの名前を変更するのかわからない! (戦争の中で必要なzipファイルはリポジトリ内の単一のファイルではありません)。しかし、もしMavenがそのファイルをそこにコピーしたいのであれば、私にとっては大丈夫ですが、なぜ名前が変更されますか?

誰にでも分かりますか?インストール時にファイルを除外する方法はありますか?デプロイメント時に、同じ名前のzipファイルをMavenリポジトリにアップロードしたいが、2番目のコピーでは失敗するため、非常に大きな問題です。 (同じ名前のzipファイルがあるため....)

答えて

3

これはstandard behavior for the assembly pluginです。それは、プロジェクトに生成されたアセンブリをプロジェクトに添付してインストールし、プロジェクトの成果物としてデプロイするようにします。名前の競合がある場合は、2つのアセンブリに異なるIDを与えていないためです。 id of the assembly is used in constructing the final file nameこれは、アセンブリ間の名前の競合を解決する適切な方法です。

アセンブリがアーチファクトとしてプロジェクトにアタッチされないようにして、アセンブリがインストールまたは展開されないようにするには、attach = false, in the assembly plugin's configurationと設定します。

+0

ありがとうございました!完璧な答え。 attach = falseは私の問題を解決しました。 –

関連する問題