Maven 2 maven assembly插件未使用finalName进行安装,且attach=true?

Maven 2 maven assembly插件未使用finalName进行安装,且attach=true?,maven-2,maven-assembly-plugin,Maven 2,Maven Assembly Plugin,我已配置以下程序集: <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.2-beta-5</version> <executions> <execut

我已配置以下程序集:

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

maven汇编插件
2.2-β-5
${project.name}-测试程序集
包裹
单一的
假的
${project.name}-test
src/assembly/test/distribution.properties
src/assemble/distribution.xml
真的
${project.name}-prod程序集
包裹
单一的
假的
${project.name}-prod
src/assemble/prod/distribution.properties
src/assemble/distribution.xml
真的
这产生了两个zip文件:

  • distribution-prod.zip
  • distribution-test.zip
我对属性attach=true的期望是,安装这两个zip文件时使用属性finalName中给出的名称。 但结果是,只有一个文件安装(附加)到工件。 maven协议是:

  • distrib-0.1-SNAPSHOT.zip
  • distrib-0.1-SNAPSHOT.zip
插件正在使用工件id而不是属性finalName! 这是虫子吗

最后一次安装将覆盖第一次安装。 如何安装这两个名称不同的文件

谢谢你的调查。 罗兰

最后一次安装将覆盖第一次安装。如何安装这两个名称不同的文件

正如预期的那样(我不知道这是否是一个bug,但组装插件就是这样工作的)。为了避免这种情况,您必须将
appendAssemblyId
属性设置为
true
,并将
finalName
更改为
${project.name}
,将assemby
id
更改为
test
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>

maven汇编插件
2.2-β-5
${project.name}-测试程序集
包裹
单一的
真的
${project.name}
src/assembly/test/distribution.properties
src/assembly/distribution-test.xml
${project.name}-prod程序集
包裹
单一的
真的
${project.name}
src/assemble/prod/distribution.properties
src/assemble/distribution-prod.xml
其中
distribution test.xml
distribution-prod.xml
分别声明程序集
id
test
prod

工作起来很有魅力(没有尝试代码,而是原则)