1

附加附加工件后,我是否需要将 install-file 和 deploy-file 添加到我的 pom 中?我相信我正确地添加了我的工件,但 maven 似乎认为工件已经到位,即使它不存在。

通过 attach-artifact 将我的附加工件添加到 pom 后,我看到 maven 尝试复制文件并在本地 repo maven-metadata-local.xml中列出该文件,但该文件没有被复制,因为它似乎没有改变。

仅供参考 - 这个工件是由程序集插件生成的,如果我删除了 build-helper,那么 maven 甚至不会尝试复制工件。

如果您有任何想法,请告诉我。

谢谢

彼得

调试日志

[INFO] Installing ./trunkProject/modules/mymodule/target/dist/added-artifact-lin64-1.0.0.59258.tar.gz 
    to ./m2repo/corp/prod/modules/mymodule/1.0.0-SNAPSHOT/added-artifact-1.0.0-SNAPSHOT-dist.tar.gz
[DEBUG] Skipped re-installing ./trunkProject/modules/mymodule/target/dist/aie-module-mymodule-lin64-1.0.0.59258.tar.gz 
    to ./m2repo/corp/prod/modules/mymodule/1.0.0-SNAPSHOT/added-artifact-1.0.0-SNAPSHOT-dist.tar.gz, 
    seems unchanged

Pom.xml

            <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.7</version>
        <executions>           
            <execution>             
                <id>attach-distribution-artifact</id>             
                <phase>package</phase>             
                <goals>               
                    <goal>attach-artifact</goal>             
                </goals>            
                <configuration>
                  <artifacts>
                    <artifact>
                      <file>${distTop}/${assemblyFinalName}-${real.os.full}-${prod.version}.${svn.revision}.tar.gz</file>
                      <type>tar.gz</type>
                      <classifier>dist</classifier>
                    </artifact>
                  </artifacts>
                </configuration>          
                </execution>         
        </executions>             
    </plugin>

装配文件

<assembly>
  <id>dist</id>
  <formats>
    <format>${distCompressed.ext}</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <fileSets>
    <fileSet>
      <directory>${kitTop}</directory>
      <excludes>
        <exclude>**/Thumbs.db</exclude>
      </excludes>
      <outputDirectory>/</outputDirectory>
    </fileSet>
  </fileSets>

4

1 回答 1

2

问题是简单的操作顺序。该程序集是在安装阶段生成的,这意味着安装程序插件无法找到它。我没有证据证明这是如何阻止构建助手的,但我怀疑附加了 assemble-plugin,installer-failed 安装并记录了该项目。当 build-help 执行时,它可能一直在尝试使用已经尝试过的安装程序插件。

解决方案

  • 删除构建助手
  • 将程序集插件阶段从安装更改为,确保工件在安装之前存在
  • 在 pom 的 maven-assembly-plugin 配置中将 appendAssemblyId 设置为 true
于 2012-11-14T20:38:59.120 回答