2

いくつかのアーティファクトからファイルをコピーしたいと思います。常にそのアーティファクトの名前を持つディレクトリを追加します。Maven依存プラグインは、名前付きディレクトリのアーティファクトを追加します。

からコピーするアーチファクトのPOM:

<groupId>some.group</groupId> 
<artifactId>scheduler-common-test-resources</artifactId> 
<version>1.0.0-SNAPSHOT</version> 
<name>Scheduler common test resources</name> 
<description>A scheduler test resources</description> 
<packaging>pom</packaging> 
. 
. 
. 
<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>2.2.1</version> 
      <configuration> 
       <descriptors> 
        <descriptor>lib/assembly.xml</descriptor> 
       </descriptors> 
       <appendAssemblyId>false</appendAssemblyId> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>single</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

アセンブリファイル:

<assembly> 
<id>json</id> 
<formats> 
    <format>tar.gz</format> 
</formats> 
<fileSets> 
    <fileSet> 
     <directory>resources/db</directory> 
     <outputDirectory>/</outputDirectory> 
     <includes> 
      <include>alterTables.sql</include> 
      <include>createTables.sql</include> 
      <include>insertsIntoReminders.sql</include> 
     </includes> 
     <excludes> 
      <exclude>pom.xml</exclude> 
     </excludes> 
    </fileSet> 
</fileSets> 

アーチファクトPOMにコピーする項目:

<artifactItem> 
           <groupId>some.group</groupId> 
           <artifactId>scheduler-common-test-resources</artifactId> 
           <version>1.0.0-SNAPSHOT</version> 
           <outputDirectory>${project.build.directory}/test-classes/db/</outputDirectory> 
           <type>tar.gz</type> 
           <overWrite>false</overWrite> 
          </artifactItem> 

結果:

そのは私はアーティファクトの名前のディレクトリを削除することができますどのようtest-classes/db/scheduler-common-test-resources-1.0.0-SNAPSHOT/

にコピーされますか?

+0

依存関係プラグインのバージョンは何ですか? – Tome

+0

私はバージョン2.8と思っています – Dima

+0

これは、 'useSubDirectoryPerArtifact'となることができる唯一の設定ですが、' artifactItem'を使用しない 'dependency:unpack-dependencies' mojoにのみ適用されます。 – Tome

答えて

1

組立・プラグインデフォルトでは、また、デフォルトでは、${project.build.finalName}なりますbaseDirectoryを追加します。あなたのケースでは

、あなたはちょうどあなたが追加することによって、そのディレクトリを必要としないプラグインを示すためにあります(あなたのためassembly.xml)アセンブリ・ディスクリプタで

<includeBaseDirectory>false</includeBaseDirectory> 

を。 assembly descriptor documentationを参照してください。

関連する問題