我可以更改目录格式Maven程序集的根目录吗?

时间:2019-02-14 17:03:12

标签: maven maven-assembly-plugin

我正在使用“ 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

1 个答案:

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