gradle

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版本号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值