Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在多个gradle项目之间共享公共依赖关系?_Java_Git_Gradle_Kotlin - Fatal编程技术网

Java 如何在多个gradle项目之间共享公共依赖关系?

Java 如何在多个gradle项目之间共享公共依赖关系?,java,git,gradle,kotlin,Java,Git,Gradle,Kotlin,我有两个用Kotlin编写的微服务,它们共享大量代码和依赖项 为了共享代码,我有一个git子模块repo设置,它本质上是我所有微服务的通用包。我可以在我的IDE中打开一个微服务,将公共代码推送到git子模块,然后打开另一个项目,然后简单地拉动,我的公共更改也会出现在这个项目中 但是,我不确定如何声明所有项目的公共依赖项。这个项目很小,很灵活,所以现在 我希望整个组织都在一个kotlin版本上 微服务之间所有共享框架的相同版本(相同版本的Ktor,相同的公开,相同的一切) 因此,失去同步的成本

我有两个用Kotlin编写的微服务,它们共享大量代码和依赖项

为了共享代码,我有一个git子模块repo设置,它本质上是我所有微服务的通用包。我可以在我的IDE中打开一个微服务,将公共代码推送到git子模块,然后打开另一个项目,然后简单地拉动,我的公共更改也会出现在这个项目中

但是,我不确定如何声明所有项目的公共依赖项。这个项目很小,很灵活,所以现在

  • 我希望整个组织都在一个kotlin版本上
  • 微服务之间所有共享框架的相同版本(相同版本的Ktor,相同的公开,相同的一切)
因此,失去同步的成本实际上比保持同步的成本更高(因为我们现在很小)

下面是一个依赖项块示例:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    compile "ch.qos.logback:logback-classic:$logback_version"
}
现在我想在多个项目之间共享这一点。我想更新一次,比如在
coreModule/dependencies.gradle
下的一个文件中,并让它在所有项目中同时更新(例如:在核心模块本身中使用一个公共gradle文件)

我想分享以下几行

    implementation fileTree(dir: 'libs', include: ['*.jar'])
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    compile "ch.qos.logback:logback-classic:$logback_version"
所以我的依赖项块在两个项目中都是这样的

dependencies {
    commonDependencies()
    // .. microservice specific dependencies
}
我需要的帮助是定义commonDependencies块,以便它可以在两个项目的dependencies块中使用。任何想法都将不胜感激

  • 我只想继续使用git子模块,因为我发现这比管理maven回购协议的推/拉操作或管理JAR以及随之而来的所有操作要快得多。如果有人知道更好的方法,我很乐意改变我的观点:)