在我的工作中,我们使用Maven。 我要尝试gradle这个首次。 我们使用了常用父POM的所有项目已设定常用的Maven插件和几个COMON依赖性。 是否有一个类似的选项中提供的gradle?
我的第二个问题是关于发布管理。 我们用maven版本的插件,它工作得对我们有好处。 是否有类似的东西可以在摇篮?
在我的工作中,我们使用Maven。 我要尝试gradle这个首次。 我们使用了常用父POM的所有项目已设定常用的Maven插件和几个COMON依赖性。 是否有一个类似的选项中提供的gradle?
我的第二个问题是关于发布管理。 我们用maven版本的插件,它工作得对我们有好处。 是否有类似的东西可以在摇篮?
要在同一构建的多个项目中共享的东西,用allprojects { ... }
subprojects { ... }
等。此外,额外的属性( ext.foo = ...
在一个父项目声明)是在子项目可见。 一个常见的成语是有一些像ext.libs = [junit: "junit:junit:4.11", spring: "org.springframework:spring-core:3.1.0.RELEASE", ...]
在顶层构建脚本。 那么子项目可以有选择地包括它们的短名字的依赖。 你应该能够找到在它的更多信息摇篮论坛 。
要共享逻辑跨版本,你可以写一个脚本插件( foo.gradle
),把它在Web服务器上,并将其包含在构建与apply from: "http://..."
,或者写一个二进制插件(一类实现org.gradle.api.Plugin
),发布为一个Jar到存储库,并将其包含在构建与apply plugin: ...
和buildscript {}
部分。 有关详细信息,请参阅摇篮用户指南 ,并在全摇篮分布的多个样本。
脚本(而不是二进制)插件的电流限制是他们没有缓存。 因此,建造才会成功,如果它可以连接到服务真实插件的Web服务器。
关于你提到的第二个问题(这应该是一个单独的问题),有几个可用的第三方插件发布,例如https://github.com/townsfolk/gradle-release 。
该io.spring.dependency管理插件可以让你使用一个Maven BOM来控制你的构建的依赖关系:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "io.spring.gradle:dependency-management-plugin:0.5.3.RELEASE"
}
}
apply plugin: "io.spring.dependency-management"
接下来,你可以用它来导入一个Maven BOM:
dependencyManagement {
imports {
mavenBom 'io.spring.platform:platform-bom:1.1.1.RELEASE'
}
}
现在,你可以导入依赖不指定版本号:
dependencies {
compile 'org.springframework:spring-core'
}
我也想这种类型的功能,我创建了一个插件来这里提供这样的: https://github.com/boxheed/gradle-pater-build-plugin
我认为做这样的事情的maven父POM的最好的办法是使用gradle这个“从申请”。
事情是这样的:
allprojects { // or: subprojects { ... }
apply from: "gradle/script/common.gradle"
}
链接和是相关的路径或URL。 希望能帮助到你。
参考:
从根到子项目导入摇篮脚本
超级POM,在摇篮分层管理的父POM类型
您可以在父POM内容转换到摇篮init文件变得非常容易。 摇篮的初始化脚本提供相同的功能的Maven超级/父POM。 基本的区别是,你可以调用初始化脚本
运行时间多达他们这样的为我们提供了灵活改变的init
脚本在运行时间,但毋庸置疑的不跟踪的变化。
你需要采取仓库,配送管理,分析等检查像FindBugs这样,CheckStyle的等在给init脚本。
细节是巨大的,你可以通过我在这里找到完整的信息。 http://www.scmtechblog.net/2015/12/how-to-migrate-parent-pom-from-maven-to.html
我对gradle这个版本的插件,类似的Maven插件发布说明。
在格拉德尔用户指南中才达到你的目标,你可以申请的“多项目建设”的概念解释这里
基本上,你可以创建一个伞形项目,通过创建一个gradle.build文件和文件gradle.settings定义一组常见配置。 构建文件中包含的属性,依赖关系和插件公地的所有项目,settings.gradle定义了哪些子项目继承这些配置。
此外,有你可以检查gradle这个插件生态系统的想法此源。
它是目前不可能的,如果你想父被本地缓存和存储在Maven仓库。
我已经在这里添加的功能要求: http://forums.gradle.org/gradle/topics/support_for_gradle_parent_shared_between_projects_cached_locally