让Maven报告哪些文件具有本地修改

时间:2016-01-29 20:20:05

标签: maven svn jenkins

我有一个Jenkins工作,可以构建一个简单的Maven项目。如果我所做的只是构建,它就可以正常工作。当我尝试释放,干运行或常规时,问题就出现了。它始终因Cannot prepare the release because you have local modifications错误而失败。我已经消灭了工作区,但问题仍然存在。有什么方法可以让Maven告诉我哪个文件它认为已被修改?我认为通过擦除本地工作区并立即运行干运行版本,任何事情都无法被修改。

请注意,我可以访问Jenkins服务器或运行实际发布版本的从服务器,因此我无法使用任何工具(如SVN)来确定什么被认为是修改过的。

2 个答案:

答案 0 :(得分:0)

您可以使用Maven SCM插件进行差异化。

https://maven.apache.org/scm/maven-scm-plugin/diff-mojo.html

基本上,将故障上游的maven插件集成,并查看是否有任何更改。我想你可能会在日志中看到输出,但如果你不能,你可以移动你的真实"除了maven pom.xml并将其替换为生成diff文件并在maven构建帮助程序插件的帮助下,将该文件作为附加的aritfact附加(到pom目标)。

答案 1 :(得分:0)

事实证明,我的问题的解决方案是在Jenkins作业配置中不使用我的私有Maven存储库的“Local to the workspace”策略。通过将其更改为“本地到执行程序”策略,问题就消失了。我仍然不确定为什么它在工作区中出现问题,但是这个解决方案解决了我的问题,并且可能适用于其他人。