更好的项目间开发方式(使用Gradle或IntelliJ)

时间:2016-09-16 09:24:57

标签: java maven intellij-idea gradle

我有两个项目(不是模块),AB。项目B取决于A。我只能运行B。依赖关系是通过maven repo设置的,其中本地回购是第一个要查看的。

当我需要更改依赖项A中的某些内容时,我会一直重复这个流程:

  • 转到IDE中的A
  • 构建A
  • 安装到本地maven repo:gradlew install
  • 转到IDE中的B
  • 刷新gradle项目
  • 运行B

有没有更好的方法可以跳过所有这些步骤?我想在我的IDE(intelliJ)中有一个'master'虚拟项目,它将包含这两个,所以我可以一次运行并更改所有内容。

2 个答案:

答案 0 :(得分:2)

解决此问题的一种方法是创建一个主项目,在此项目的DRGCode Cost Normality 中包含您的两个项目:

settings.gradle

将项目B的include "A", "B" 更改为使用Conditional substitution

build.gradle

这样,如果在根项目中执行configurations.all { resolutionStrategy.dependencySubstitution.all { DependencySubstitution dependency -> if (dependency.requested instanceof ModuleComponentSelector && dependency.requested.group == "org.example") { def targetProject = findProject(":${dependency.requested.module}") if (targetProject != null) { dependency.useTarget targetProject } } } } ,gradle也会构建项目A.

在IDEA中导入此根项目也会有效。

答案 1 :(得分:2)

Gradle 3.1介绍composite builds。有了它,您可以创建新项目,这是其他项目的组合。这个新项目只包含两个文件:

settings.gradle

rootProject.name='we'    
includeBuild '../api.java'
includeBuild '../common'
includeBuild '../engine'
includeBuild '../io'
includeBuild '../io-redis'

的build.gradle

task buildServer {
    dependsOn gradle.includedBuild('engine').task(':server:build')
}

很快发布,IDEA 2016.3将支持这一点。