Maven 程序集插件未使用 FinalName 进行 Attach=true 安装?

2024-04-19

我配置了以下程序集:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2-beta-5</version>
            <executions>
                <execution>
                    <id>${project.name}-test-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                    <configuration>
                        <appendAssemblyId>false</appendAssemblyId>
                        <finalName>${project.name}-test</finalName>
                        <filters>
                            <filter>src/assemble/test/distribution.properties</filter>
                        </filters>
                        <descriptors>
                            <descriptor>src/assemble/distribution.xml</descriptor>
                        </descriptors>
                        <attach>true</attach>
                    </configuration>
                </execution>
                <execution>
                    <id>${project.name}-prod-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                    <configuration>
                        <appendAssemblyId>false</appendAssemblyId>
                        <finalName>${project.name}-prod</finalName>
                        <filters>
                            <filter>src/assemble/prod/distribution.properties</filter>
                        </filters>
                        <descriptors>
                            <descriptor>src/assemble/distribution.xml</descriptor>
                        </descriptors>
                        <attach>true</attach>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

这生成了两个 zip 文件:

  • 发行版-prod.zip
  • 发行版测试.zip

我对楼盘的期待附加=真也就是说,这两个 zip 文件是以属性中给定的名称安装的最终名称。 但结果是,只有一个文件安装(附加)到工件上。 Maven协议是:

  • distrib-0.1-SNAPSHOT.zip
  • distrib-0.1-SNAPSHOT.zip

该插件使用artifact-id而不是属性finalName! 这是一个错误吗?

最后一个安装将覆盖第一个安装。 我该怎么做才能安装这两个不同名称的文件?

感谢您的调查。 罗兰


最后一个安装将覆盖第一个安装。我该怎么做才能安装这两个不同名称的文件?

正如预期的那样(我不知道这是否是一个错误,但这就是程序集插件的工作原理)。为了避免这种情况,您必须设置appendAssemblyId属性到true并且,为了获得等效的结果,改变finalName to ${project.name}和大会id to test and prod(即使用两个程序集描述符)。像这样的东西:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.2-beta-5</version>
      <executions>
        <execution>
          <id>${project.name}-test-assembly</id>
          <phase>package</phase>
          <goals>
            <goal>single</goal>
          </goals>
          <configuration>
            <appendAssemblyId>true</appendAssemblyId>
            <finalName>${project.name}</finalName>
            <filters>
                <filter>src/assemble/test/distribution.properties</filter>
            </filters>
            <descriptors>
              <descriptor>src/assemble/distribution-test.xml</descriptor>
            </descriptors>
          </configuration>
        </execution>
        <execution>
          <id>${project.name}-prod-assembly</id>
          <phase>package</phase>
          <goals>
            <goal>single</goal>
          </goals>
          <configuration>
            <appendAssemblyId>true</appendAssemblyId>
            <finalName>${project.name}</finalName>
            <filters>
              <filter>src/assemble/prod/distribution.properties</filter>
            </filters>
            <descriptors>
              <descriptor>src/assemble/distribution-prod.xml</descriptor>
            </descriptors>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

Where distribution-test.xml and distribution-prod.xml声明集会id test and prod分别。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Maven 程序集插件未使用 FinalName 进行 Attach=true 安装? 的相关文章

随机推荐