多个装配结果

时间:2011-03-28 06:59:41

标签: maven maven-assembly-plugin

我需要在工件进程中保持创建状态。所以我有想法将这些状态捆绑到一个自己的zip中并在准备阶段解压缩它。附加也应该是部署的真实结果。此结果是创建文件的包,在下一个工件中很有价值。

我正在尝试创建两个结果拉链,但在部署期间,第二个程序集名称将被忽略,并且始终部署myArtifact-version.zip。

怎么了?

提前致谢, 斯文

我的pom看起来像:

<project ...>
  <artifactId>myArtifact</artifactId>
  <groupId>de.myGroup</groupId>
  <packaging>pom</packaging>
  ...
  <dependencies>
    <dependency>
      <groupId>de.myGroup</groupId>
      <artifactId>gen-status</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
  <build>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>unpack-dependencies</goal>
                </goals>
                <configuration>
                    <outputDirectory>${project.build.directory}/config</outputDirectory>
                </configuration>
            </execution>
        </executions>
    </plugin>
    <plugin>
        ... proceeding generation
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <id>results</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <descriptors>
                <descriptor>src/assemble/bundle-gen-results.xml</descriptor>
              </descriptors>
            </configuration>
          </execution>
          <execution>
            <id>status</id>
            <phase>package</phase>
            <goals><goal>single</goal></goals>
            <configuration>
              <descriptors>
                <descriptor>src/assemble/bundle-gen-status.xml</descriptor>
              </descriptors>
              <finalName>gen-status-${project.version}</finalName>
            </configuration>
          </execution>
        </executions>
      </plugin>
  </build>
</project>

程序集是:

发电机results.xml:

<assembly ... >
    <id></id>
    <formats><format>zip</format></formats>
    <baseDirectory></baseDirectory>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>${project.build.directory}/export</directory>
            <includes>
                <include>something.*/**/*.*</include>
            </includes>
        </fileSet>
    </fileSets>
</assembly>

束-GEN-status.xml

<assembly ... >
    <id></id>
    <formats><format>zip</format></formats>
    <baseDirectory></baseDirectory>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>${project.build.directory}/config</directory>
            <includes>
                <include>status.file</include>
            </includes>
            <outputDirectory>classes/scripts</outputDirectory>
        </fileSet>
    </fileSets>

</assembly>

2 个答案:

答案 0 :(得分:0)

您可以使用attach-artifac build helper maven plugin目标来实现此目标。

答案 1 :(得分:0)

这允许我仅将状态文件附加到当前工件。但是当我尝试添加状态工件时,我正在获得一个依赖循环。

<project ...>
  <artifactId>myArtifact</artifactId>
  <groupId>de.myGroup</groupId>
  <packaging>pom</packaging>
  ...
  <dependencies>
    <dependency>
      <groupId>de.myGroup</groupId>
      <artifactId>myArtifact</artifactId>
      <classifier>status</classifier>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
  ...
 <build>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>unpack-dependencies</goal>
                </goals>
                <configuration>
                    <outputDirectory>${project.build.directory}/config</outputDirectory>
                    <includeClassifiers>status</includeClassifiers>
                </configuration>
            </execution>
        </executions>
    </plugin>
    ...
    exec
    ...
    <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <executions>
      <execution>
        <id>status</id>
        <phase>package</phase>
        <goals><goal>attach-artifact</goal></goals>
        <configuration>
        <artifacts>
               <artifact>
             <file>${project.build.directory}/config/status.file</file>
             <type>file</type>
                 <classifier>status</classifier>
           </artifact>
        </artifacts>
         </configuration>
         </execution>
       </executions>
     </plugin>