我正在使用“ dir”格式的程序集描述符来生成分解的可分发内容。目前,这会将我包含的文件放在名为“ target / $ {project.build.finalName}”的目录中。
理想情况下,我希望此目录的名称不同。理想情况下为“ target / $ {project.artifactId}”,实质上是删除版本组件。
想要进行此更改的原因是,我将需要在离散的管道步骤中引用该存档中的文件,并且路径中的版本会带来可维护性问题。
提供的程序集描述符的简化版本:
<assembly>
<id>preparation</id>
<formats>
<format>dir</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${project.basedir}/src/main/resources</directory>
<outputDirectory/>
</excludes>
</fileSet>
</fileSets>
</assembly>
我当前在其中的根目录如下:
target/myArtifactId-1.0.0-SNAPSHOT/assembledResources
我想到达
target/myArtifactId/assembledResources
baseDirectory和朋友只会影响根目录中的路径,仍然为我提供包含版本号的路径,例如:
target/myArtifactId-1.0.0-SNAPSHOT/myArtifactId/assembledResources
答案 0 :(得分:2)
在您的maven maven-assembly-plugin中,将<finalName>
配置为${project.artifactId}
注意:
在下面的示例中,将<descriptor>src/assembly/dist.xml</descriptor>
的位置更改为您的位置。
例如:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<descriptors>
<descriptor>src/assembly/dist.xml</descriptor>
</descriptors>
<finalName>${project.artifactId}</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
我假设您不希望在名称后附加“准备”,所以我添加了<appendAssemblyId>false</appendAssemblyId>