Maven程序集插件,错误的依赖文件名

时间:2015-04-21 07:55:15

标签: java maven maven-assembly-plugin

我使用maven-assembly-plugin(版本2.5.2)在我的maven构建中制作了一个额外的工件。

Classpath被添加到META-INF / MANIFEST.MF:

<manifest>                                                                  
  <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
  <addClasspath>true</addClasspath>
  <classpathPrefix>lib/</classpathPrefix>
</manifest>

在我的程序集XML文件中添加了依赖项:

    <dependencySet>
        <unpack>false</unpack>
        <scope>runtime</scope>
        <useProjectArtifact>false</useProjectArtifact>
        <outputDirectory>lib</outputDirectory>
    </dependencySet>

但问题是MANIFEST.MF中包含的给定依赖项为name-1.2.0-20150413.094441-8.jar。但是,复制到“lib”文件夹的文件称为name-1.2.0-SNAPSHOT.jar

如何修复,所以jar清单中表示的实际运行时类路径是指实际存在的文件?

1 个答案:

答案 0 :(得分:0)

这里的问题是有两个插件与SNAPSHOTS的工作方式不同。

Maven Archiver负责创建MANIFEST。恕我直言的最佳方式是强制它不使用带时间戳的版本,将其属性<uniqueVersion>设置为false。请参阅here for more detail

我会让汇编插件以其工作方式工作,使用 -SNAPSHOT 而不是时间戳。