2

Je veux copier des fichiers à partir d'un artefact. mais il ajoute toujours un répertoire avec le nom de cet artefact.Le plugin de dépendance Maven ajoute un artefact nommé répertoire

la pom de l'artefact pour copier à partir de:

<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> 

le fichier d'assemblage:

<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> 

l'élément à copier dans l'artefact 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> 

résultat:

son copiés à test-classes/db/scheduler-common-test-resources-1.0.0-SNAPSHOT/

Comment puis-je supprimer le répertoire avec le nom d'artefact?

+0

Quelle est la version du plugin de dépendance que vous utilisez? – Tome

+0

Je pense que sa version 2.8 – Dima

+0

La seule chose de configuration qui peut faire cela serait 'useSubDirectoryPerArtifact', mais cela s'applique uniquement au mojo' dependency: unpack-dependencies', qui n'utilise pas 'artifactItem'. – Tome

Répondre

1

L'ensemble de plug-in sera par défaut ajouter un baseDirectory, qui, aussi par défaut, être ${project.build.finalName}.

Dans votre cas, il vous suffit d'indiquer le plug-in que vous n'avez pas besoin de ce répertoire en ajoutant:

<includeBaseDirectory>false</includeBaseDirectory> 

dans le descripteur d'assemblage (assembly.xml pour vous). Voir assembly descriptor documentation.