这是场景:
两个 Maven 3 项目构建。
构建 1 具有部署到 Nexus 的快照 jar。
Build 2 依赖于快照,引用如1.0.0-SNAPSHOTmvn clean package assembly:single
,使用命令打包和压缩。
我们遇到的问题:有时在创建程序集时,jar 的 MANIFEST 文件有时会说some.jar.1.0.0-SNAPSHOT有时会说some.jar.1.0.0-datetime stamp,因此导致类未定义错误。
有没有办法防止清单文件中出现这个命名问题?
- 编辑 -
进一步的研究发现了以下内容:
“如果快照是从 repo 解析的,那么它将被加上时间戳,如果它来自反应器或本地 repo,那么它将是 -SNAPSHOT。插件调用 maven 解析逻辑,所以这是核心 maven 行为。“
这是正在遇到的确切问题。第二个构建清单文件始终具有./lib/Framework-1.0.0-SNAPSHOT.jar条目,其中实际 jar 文件名在./lib/Framework-1.0.0-SNAPSHOT.jar和./lib/之间更改Framework-1.0.0-timestamp.jar基于上面的引用。