gradle 参考文章
Gradle史上最详细解析:https://www.cnblogs.com/wxishang1991/p/5532006.htmlhttps://blog.csdn.net/ShareUs/article/details/89920547Gradle插件从入门到进阶 https://juejin.im/post/5ccf02e36fb9a0322e73a3db
Gradle在build.gradle文件中,使用mavenLocal() 发现并不生效:
https://blog.csdn.net/qq_23085893/article/details/79633934
利用Gradle构建Java多模块项目:https://blog.csdn.net/java779808321/article/details/79890167
group 'com.imooc.gradle'
version '1.0-SNAPSHOT'
allprojects {
apply plugin: 'java'
sourceCompatibility = 1.8
apply plugin: 'maven-publish'
publishing {
publications {
myPublish(MavenPublication){ //myPublish自定义名
from components.java
}
}
}
repositories {
maven {
name "myRepo"
url "" //私服地址
}
}
}
subprojects {
repositories {
maven { url 'http://maven.generalichina.com:8081/nexus/content/repositories/public/' }
maven { url 'http://maven.generalichina.com:8081/nexus/content/repositories/snapshots/' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
mavenLocal() //直接使用本地maven仓库
mavenCentral()
}
dependencies {
compile ('org.hibernate:hibernate-core:3.6.3.Final'){
// exclude group:"org.slf4j",module: "slf4j-api"
}
compile 'ch.qos.logback:logback-classic:1.2.1'
testCompile group: 'junit', name: 'junit', version: '4.11'
}
}
plugins {
id 'java'
}
group 'com.imooc.gradle'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
apply plugin: 'war' //官网
//多项目jar依赖出现冲突时,编译报错
configurations.all {
resolutionStrategy{
failOnVersionConflict()
force 'org.slf4j:slf4j-api:1.7.24' //强制指定依赖某一版本
}
}
repositories {
maven { url 'http://maven.generalichina.com:8081/nexus/content/repositories/public/' }
maven { url 'http://maven.generalichina.com:8081/nexus/content/repositories/snapshots/' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
mavenLocal() //直接使用本地maven仓库
mavenCentral()
}
dependencies {
compile ('org.hibernate:hibernate-core:3.6.3.Final'){
// exclude group:"org.slf4j",module: "slf4j-api"
}
compile 'ch.qos.logback:logback-classic:1.2.1'
testCompile group: 'junit', name: 'junit', version: '4.11'
}
def createDir = {
path ->
File dir = new File(path)
if(!dir.exists()){
dir.mkdirs()
}
}
task makeJavaDir(){
def paths = ['src/main/java','src/main/resources','src/test/java','src/test/resources'];
doFirst{
paths.forEach(createDir)
}
}
task makeWebDir(){
dependsOn 'makeJavaDir'
def paths = ['src/main/webapp','src/test/webapp'];
doLast{
paths.forEach(createDir)
}
}
按如下,进入gradle输入窗口
public class ProjectVersion{
private int major;
private int minor
/**
* 1.分号可选
* 2.给属性自动添加get,set方法
* 3.最后一个表达式的值,会作为返回值
* @param major
* @param minor
*/
public ProjectVersion(int major,int minor){
this.major =major;
this.minor =minor;
}
public int getMajor(){
major;
}
public void setMajor(int major){
this.major = major;
}
}
ProjectVersion v1 = new ProjectVersion(1,1);
println v1.minor
ProjectVersion v2 = null
println v2 == v1
//groovy 高效特性
// 1 可选的类型定义
def version = 1
//2 assert 断言
//assert version == 2
//3 括号是可选的
//println version
//4 字符串
def s1 ="imooc"
def s2 = "gradle version is ${version}"
def s3 = '''my
name is
imooc'''
//println s1
//println s2
//println s3
//5 集合api
//list
def buildTools =['ant','maven']
buildTools << 'gradle'
//assert buildTools.getClass() == ArrayList
//assert buildTools.size() ==3
//map
def buildYear = ['ant':2000,'maven':2004]
buildYear.gradle =2009
//println buildYear.ant
//println buildYear['gradle']
//println buildYear.getClass()
//6 闭包
def c1 = {
v ->
print v
}
def c2 = {
print 'hello'
}
def method1(Closure closure){
closure('param')
}
def method2(Closure closure){
closure()
}
method1(c1);
method2(c2);
// 输出 paramhello
build.gradle 配置文件里,下面是通过闭包,创建文件目录
def createDir = {
path ->
File dir = new File(path)
if(!dir.exists()){
dir.mkdirs()
}
}
task makeJavaDir(){
def paths = ['src/main/java','src/main/resources','src/test/java','src/test/resources'];
doFirst{
paths.forEach(createDir)
}
}
task makeWebDir(){
dependsOn 'makeJavaDir'
def paths = ['src/main/webapp','src/test/webapp'];
doLast{
paths.forEach(createDir)
}
}
gradle 版本冲突,按如下可以看到gradle自动帮我们升级jar版本号