以下是我项目的pom.xml中的Maven程序集插件详细信息:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/main/assembly/prj-assembly.xml</descriptor>
</descriptors>
<finalName>myArtifact</finalName>
<outputDirectory>target/package</outputDirectory>
<workDirectory>target/assembly/work</workDirectory>
<includeBaseDirectory>false</includeBaseDirectory>
</configuration>
</execution>
</executions>
</plugin>
一切正常,并且会生成工件,但问题是父目录也会生成具有工件名称的内容。所以工件结构看起来像:
myArtifact.tar.gz
|_myArtifact [This is the parent directory]
|_ myfolder
|_myfiles
我想要的是
myArtifact.tar.gz
|_ myfolder
|_myfiles
我怎样才能实现这个目标?
编辑:
以下是描述符[prj-assembly.xml]详细信息:
<assembly>
<id>deploy</id>
<formats>
<format>tar.gz</format>
</formats>
<files>
<file>
<source>src/main/scripts/f1.sh</source>
<outputDirectory>bin</outputDirectory>
<filtered>false</filtered>
<lineEnding>unix</lineEnding>
<fileMode>0755</fileMode>
</file>
<file>
<source>src/main/scripts/install.sh</source>
<outputDirectory>bin</outputDirectory>
<filtered>false</filtered>
<lineEnding>unix</lineEnding>
<fileMode>0755</fileMode>
</file>
<file>
<source>src/main/scripts/activate.sh</source>
<outputDirectory>bin</outputDirectory>
<filtered>false</filtered>
<lineEnding>unix</lineEnding>
<fileMode>0755</fileMode>
</file>
</files>
<dependencySets>
<dependencySet>
<scope>runtime</scope>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>
答案 0 :(得分:1)
尝试将此添加到您的程序集描述符中:
<includeBaseDirectory>false</includeBaseDirectory>
答案 1 :(得分:1)
关键是你没有添加
<includeBaseDirectory>false</includeBaseDirectory>
汇编描述符中的。 includeBaseDirectory不属于插件的配置区域,导致goal single does not has any kind of this configuration item。
除此之外,为什么要更改以下值:
<outputDirectory>target/package</outputDirectory>
<workDirectory>target/assembly/work</workDirectory>