Gradle - 并行编译子模块

时间:2015-07-20 19:24:55

标签: gradle spring-boot

我有一个包含两个子模块的项目。

  1. 客户端 - 基于Google的网络开发人员工具包的用户界面
  2. 服务器 - 基于Spring Boot的服务器。
  3. 现在在服务器上的Gradle配置(构建文件)中,我从客户端创建一个jar文件,然后通过下面的代码片段将其包含在服务器上。最后,我根据服务器配置创建.war文件。

    dependencies {
    
        compile project(':client')
    
        }
    

    该体系结构类似于Spring Boot提出的资源处理方式。

    现在,当我运行Gradle构建时,因为服务器依赖于客户端,所以服务器编译在客户端编译和测试完成之前不会启动。

    我觉得我没有使用这种编译客户端和服务器的方式来使用Gradle的并行性。

    是否有任何方法可以并行编译和运行测试用例,然后仅在子模块的任务完成时才创建.war文件?如何访问客户端和服务器模块的配置,然后在rootProject上创建一个新的war文件?

2 个答案:

答案 0 :(得分:0)

您可以尝试在Gradle命令中添加flag --parallel。然而,这仍然是孵化功能。我注意到在运行Gradle守护程序时构建时间有了很大的改进,所以你也可以尝试一下。

答案 1 :(得分:0)

不,目前还没有这种级别的并行性。我认为团队正在慢慢致力于一般的并行任务执行,如in their spec所述。这应该允许您提出的那种行为。

也就是说,如果他们通过<mapper namespace="pl.my.package.MyNewMapper"> maxParallelForks选项独立运行,可以并行运行测试。 MrHaki在他的博客上给出了short how-to。请注意,这仅适用于单个forkEvery任务实例。