2015-04-29 50 views
0

我有一个Jenkins作业,它将首先从SVN存储库更新代码,然后我需要在我的Maven插件中处理来自SVN的更新文件。如何在Maven MOJO中读取Jenkins控制台SVN输出

那么,我怎样才能从詹金斯更新文件列表到我的MOJO(扩展org.apache.maven.plugin.AbstractMojo)类?

我认为这样做的一种方法是阅读Jenkins控制台,在其中打印SVN日志并解析该控制台输出并获取更新的文件列表。但我认为会有更好的方式来做到这一点。

谢谢。

+0

你能详细说明你究竟想要做什么吗?我们在谈论增量构建吗? – khmarbaise

+0

@khmarbaise我在詹金斯有一个夜间建立工作。这项工作是首先运行SVN更新,然后运行我自定义的maven插件作业。在我的maven插件(MOJO)中,我需要从SVN获取更新文件的列表。 –

+0

我知道你有自己的MOJO,但是MOJO的目的是什么?另一方面,你可以看看[SCM组件](http://maven.apache.org/scm/)? – khmarbaise

回答

0

因此,您需要记录文件的状态,之后您需要检查哪些文件已更改。这里的问题是:你会被称为第3版,下一次你将被第7版调用,但是更新(拾取更改的/新文件)已经由(例如)詹金斯完成,现在你需要知道哪些文件已被更改/添加?这只能通过使用存储在目标文件夹中的一些补充信息来完成(例如文件的指纹),这已经像maven-compiler-plugin那样进行了检查。阅读SVN带给你回到相同的问题?你第一次被称为哪个州?

您需要存储关于上次更新的信息...因此将修订号存储在某处?下一次你会被称为比较它与存储,你可以做出决定该怎么办...

更好的是做这样的事情在一个文件库,所以你是独立的SCM系统......但它不会改变,需要确定哪些莫名其妙文件已被更改......

可能一看http://maven.apache.org/shared/maven-shared-incremental/可能是值得的......

此外,你需要实现什么样的影响analyzis的,检查的事情就像你改变类A(让它用Java说),但是类B被类B使用,所以你需要编译类B而不是总是......有特殊情况需要考虑...... 影响o怎么样? f其他信息如配置(例如pom文件更改)?

相关问题