build-helper-maven-plugin:attach-artifact不会将工件复制到存储库中

时间:2012-11-14 18:07:13

标签: maven artifacts

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

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

FYI - 这个工件是由assembly-plugin生成的,如果我删除了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>

1 个答案:

答案 0 :(得分:2)

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

解决方案

  • 删除build-helper
  • 将程序集插件阶段从安装更改为,确保在安装之前存在工件
  • 在pom的maven-assembly-plugin配置中将appendAssemblyId设置为true