Maven 依赖插件添加工件命名目录
Maven dependency plugin adds artifact named directory
我想从某个神器中复制文件。但它总是添加一个带有该工件名称的目录。
要从中复制的工件的 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/
如何删除带有工件名称的目录?
assembly-plugin 将默认添加一个 baseDirectory,默认情况下也是 ${project.build.finalName}
。
在您的情况下,您只需通过添加以下内容来表明您不需要该目录的插件:
<includeBaseDirectory>false</includeBaseDirectory>
在程序集描述符中(assembly.xml
适合您)。参见 assembly descriptor documentation。
我想从某个神器中复制文件。但它总是添加一个带有该工件名称的目录。
要从中复制的工件的 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/
如何删除带有工件名称的目录?
assembly-plugin 将默认添加一个 baseDirectory,默认情况下也是 ${project.build.finalName}
。
在您的情况下,您只需通过添加以下内容来表明您不需要该目录的插件:
<includeBaseDirectory>false</includeBaseDirectory>
在程序集描述符中(assembly.xml
适合您)。参见 assembly descriptor documentation。