0

我设置了一个 pom.xml 配置文件,它调用 Maven (2.2.1) 程序集来创建我们将上传到第三方漏洞评估工具的自定义工件。配置非常简单 - 剥离它的基本要素

<dependencySet>
   <includes>
      <include>${project.groupId}:*:jar</include>
   </include>
   <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
</dependencySet>

<dependencySet>
   <outputDirectory>lib</outputDirectory>
   <includes/>
   <excludes>
      <exclude>${project.groupId}:*</exclude>
   </excludes>
</dependencySet>

也就是说 - 顶级目录有我们的 jar,去掉了版本信息,所有依赖项都在 /lib 目录中并包含版本信息。

这非常简单,它适用于我的桌面。

在 Jenkins 服务器上,所有内容都被放入顶层目录,并且版本信息被剥离。

我的第一个想法是服务器上的 ${project.groupId} 可能有问题。这似乎不太可能,但很明显需要检查。不幸的是,问题仍然存在。

也不是因为它是 tar.gz - 我看到 .zip 的行为相同?

有任何想法吗?

4

1 回答 1

0

我们终于找到了问题所在。pom.xml 文件不包含 maven-assembly-plugin 的显式版本,我没有注意到它,因为一切正常。

后来,我们推送到构建服务器后,它失败了。我们验证了 maven 版本是否匹配,但没有考虑检查插件版本,因为所有其他依赖项都需要明确的版本值。一旦我们确实考虑添加版本(2.2-beta-4,开始),它就起作用了。

于 2013-10-10T19:44:42.187 回答