Gradle 格拉德:有点像Maven父母POM
在我们公司,许多不同的项目使用相似的技术堆栈,并将有许多共同的特点。 因此,我们希望在一个公共文件中维护公共特性、依赖项等,并在其他项目中引用它。 在maven中,这类似于使用公共依赖信息创建一个单独的maven项目,并在其他项目中将其称为 我想做一些类似于gradle中maven父项目的事情,它可以被所有不同的项目使用。 我在谷歌上搜索过,但找不到关于如何做到这一点的简明信息。 我们不允许使用外部第三方插件Gradle 格拉德:有点像Maven父母POM,gradle,parent-pom,Gradle,Parent Pom,在我们公司,许多不同的项目使用相似的技术堆栈,并将有许多共同的特点。 因此,我们希望在一个公共文件中维护公共特性、依赖项等,并在其他项目中引用它。 在maven中,这类似于使用公共依赖信息创建一个单独的maven项目,并在其他项目中将其称为 我想做一些类似于gradle中maven父项目的事情,它可以被所有不同的项目使用。 我在谷歌上搜索过,但找不到关于如何做到这一点的简明信息。 我们不允许使用外部第三方插件 如果有人能解释一下如何做到这一点,那就太好了。在gradle中,你可以做到这一点,但要
如果有人能解释一下如何做到这一点,那就太好了。在gradle中,你可以做到这一点,但要做到这一点,你需要有外部插件,否则至少目前是不可能的。我是这样做到的:
buildscript {
repositories { jcenter() }
dependencies {
classpath 'com.netflix.nebula:nebula-dependency-recommender:4.3.0'
}
}
allprojects {
apply plugin: 'nebula.dependency-recommender'
apply plugin: 'groovy'
apply plugin: 'java'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
jcenter()
maven { url "http://repo1.maven.org/maven2/" }
maven { url "REPOSITORY_OF_YOUR_PARENT_POM.XML" }
}
dependencyRecommendations {
mavenBom module: 'YOUR_PARENT_POM_GROUP:YOUR_PARENT_POM_ID:YOUR_PARENT_POM_VERSION'
}
}
其中:
存储库\u您的\u父项\u POM.XML-任何系统,如nexus或maven可以访问的其他系统
您的家长POM组-您的家长POM项目组(例如com.foo.bar.PARENT)
您的家长家长家长ID-您的家长家长家长ID(例如项目家长)
您的家长POM版本-您的家长POM项目版本(例如1.0.1)
因此,如果netflix.nebula的外部依赖性很好,那么您可以这样做Gradle有许多扩展机制来利用位于主脚本之外的构建逻辑 可以做的一件简单的事情是使用外部构建脚本,该脚本可以来自本地文件系统或通过URL,请参阅 如果这个解决方案出现了太多问题,那么您可以着手打包一个其他人可以应用并可能配置的真正插件
这将允许您配置更多的依赖项,例如。我在这里找到了最佳解决方案: