Maven 2 我怎样才能告诉哈德逊去构建模块而不是作业?

Maven 2 我怎样才能告诉哈德逊去构建模块而不是作业?,maven-2,hudson,maven,Maven 2,Hudson,Maven,我在哈德逊有很多工作,大部分都很小,只有几个模块。但其中一个很大,由几个模块组成 当我为那个大任务中的几个模块中的任何一个提交到subversion存储库时,Hudson会构建整个任务,而不仅仅是已经更改的模块 不管我是使用scm轮询还是subversion钩子,结果都是一样的 在我看来,如果构建模块而不是作业,那会更好,因为其他作业中的其他模块依赖于模块而不是作业 这是可以配置的,还是我必须创建多个工作而不是一个大的工作?如果是这样,我可以将大作业配置为在触发任何模块时从不构建,但在更改其自身

我在哈德逊有很多工作,大部分都很小,只有几个模块。但其中一个很大,由几个模块组成

当我为那个大任务中的几个模块中的任何一个提交到subversion存储库时,Hudson会构建整个任务,而不仅仅是已经更改的模块

不管我是使用scm轮询还是subversion钩子,结果都是一样的

在我看来,如果构建模块而不是作业,那会更好,因为其他作业中的其他模块依赖于模块而不是作业

这是可以配置的,还是我必须创建多个工作而不是一个大的工作?如果是这样,我可以将大作业配置为在触发任何模块时从不构建,但在更改其自身的pom.xml时仍然构建吗

谢谢。

您可以利用。例如:

mvn reactor:make-scm-changes

这将只生成在SCM中已更改的模块。按照链接查看其他示例。

您的编译器不提供增量编译选项吗?Java1.6编译器通常搜索类和源文件,并决定使用时间戳来确定是使用源文件还是类文件。在构建代码时,只需忽略干净的目标

另一个选项是首先运行批处理/shell脚本,以确定更改了哪些文件并删除了相应的类文件,以便编译器以增量方式生成丢失的类文件。

Hudson在作业配置的Maven区域中有一个“增量生成”选项


它隐藏在“高级”区域。

在更改hudson之前,我在本地尝试了这个方法,我更改了一个文件并运行了“mvn reactor:make scm changes”。它不起作用。我得到了“构建失败,没有匹配的文件夹:”然后什么都没有。使用“svn stat,我可以看到我的文件已更改”时,这是不是可以工作,还是只能在hudson内部工作?您是否在启用调试的情况下运行它
mvn reactor:make scm changes-X
网站上有很多文档,我看到的只是它正确地生成了“svn stats”并找到了更改的文件。然而,我想知道这是否是答案。这不是本地的变化吗?在我离开之前对我好的东西?当所有的更改都是由开发人员进行的,而Hudson只是通过svn启动时,Hudson如何找到任何更改?reactor能将最后更改的文件识别为scm更改吗?我想你是对的。您可以将其作为一系列较小的链接作业来处理,每个作业都针对整个构建中的单个模块。如果其中一个作业触发,那么它可能会构建(即reactor:make dependents),以便将这些下游模块更新到reactor内的新版本。不过,我不确定这是否正是你想要的。