【发布时间】:2011-10-04 21:14:20
【问题描述】:
我希望使用类路径中快照的时间戳版本(例如 api-0.5.0-20110706.191935-1.jar)从 Maven 运行我们的功能测试。然而,虽然我可以看到我们的 Artifactory 存储库中有带时间戳的版本,但 Maven 指的是 api-0.5.0-SNAPSHOT.jar 并从本地存储库中解析它。
背景
我们的持续集成 (CI) 服务器设置了两个相关的构建。服务器构建运行mvn deploy,新快照出现在正确构建的存储库中。
我们还有一个功能测试版本,它获取最新的正确版本,部署到开发服务器,然后开始针对它运行测试。
似乎正在发生的是功能测试构建依赖于 API-0.5.0-SNAPSHOT.jar。当服务器构建运行时,它会替换本地存储库中的快照,并且我们开始从功能测试构建中收到 NoClassDeFond 错误。
因此,我希望功能测试版本使用带时间戳的版本。
我目前知道的选项:
- 在 POM 中声明一个快照存储库并确保 uniqueVersion 为 true(我将很快运行构建来尝试此操作)。
- 使用
version lock:snapshots目标将pom 中的版本设置为带时间戳的版本。 - 考虑在 CI 服务器的一次调用中运行服务器构建和功能测试。 (即删除服务器版本)。
【问题讨论】: