如何在Maven MOJO中读取Jenkins控制台SVN输出

如何在Maven MOJO中读取Jenkins控制台SVN输出,svn,jenkins,maven-3,hudson,maven-plugin,Svn,Jenkins,Maven 3,Hudson,Maven Plugin,我有一个Jenkins的工作,它将首先更新SVN存储库中的代码,然后我需要在我的Maven插件中处理SVN中更新的文件 那么,如何将Jenkins的更新文件列表放入我的MOJO extends org.apache.maven.plugin.AbstractMojo类中呢 我认为这样做的一种方法是读取Jenkins控制台,其中SVN日志被打印出来,并解析控制台输出并获得更新的文件列表。但我认为会有更好的方法来做到这一点 谢谢。因此您需要记录文件的状态,然后需要检查哪些文件已更改。这里的问题是:您

我有一个Jenkins的工作,它将首先更新SVN存储库中的代码,然后我需要在我的Maven插件中处理SVN中更新的文件

那么,如何将Jenkins的更新文件列表放入我的MOJO extends org.apache.maven.plugin.AbstractMojo类中呢

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


谢谢。

因此您需要记录文件的状态,然后需要检查哪些文件已更改。这里的问题是:您将在rev 3上被调用,下一次您将在rev 7上被调用,但是提取更改/新文件的更新已经由例如Jenkins完成,现在您需要知道哪些文件已更改/添加?这只能通过使用存储在目标文件夹中的一些补充信息来实现,例如,像maven编译器插件一样检查文件的指纹。阅读SVN会让你回到同样的问题上来吗?你第一次被称为哪个州

您需要存储有关上次更新的信息…那么是否将修订号存储在某个位置?下次调用时,请将其与存储的进行比较,然后您可以决定要执行的操作

更好的方法是在文件库中执行这些操作,这样您就可以独立于SCM系统…但它不会改变以某种方式识别已更改的文件的需要

可能是一个看可能是值得的

此外,你需要实现一种影响分析的方法,比如检查你改变类A,在爪哇说它,但是B类使用A类,所以你不需要编译B类……有特殊的情况要考虑…


其他信息(如配置,例如pom文件更改)的影响如何?

您能否详细说明您到底想做什么?我们在谈论增量构建吗?@khmarbaise我在詹金斯有一个每晚的构建工作。作业是首先运行SVN更新,然后运行我的定制maven插件作业。在我的maven插件MOJO中,我需要从SVN获取更新文件的列表。我知道你有自己的MOJO,但是这个MOJO的目的是什么?另一方面,你可以看看?@khmarbaise谢谢你的评论。在MOJO中,我基本上编译文件,这些文件是自定义程序文件。编译器是用MOJO编写的。所以现在我每天晚上都在编译沙箱中的所有文件,但要求只编译更改过的文件。因此,我需要在SVN存储库中更改的文件列表。