• gradle编译


    编译三剑客。ant、gradle、maven

    gradle安装

    gradle一般不需要安装,我们只要有他的zip文件就行。
    在工程目录下的gradle\wrapper目录下。
    有gradle-*-bin.zip、gradle-wrapper.jar、gradle-wrapper.properties三个文件。

    需要注意的是gradle-wrapper.properties文件里配置了gradle的安装源文件地址。
    我们一般直接指向gradle-*-bin.zip就行了
    如下修改

    #distributionUrl=https://services.gradle.org/distributions/gradle-5.6.4-bin.zip
    distributionUrl=gradle-5.6.4-bin.zip
    

    编译配置文件(build.gradle)

    gradle跟maven一样,不仅能进行build。也可以自动引入jar。
    不过项目里通常不会直接应用网上的源,而是使用本地已经下好的jar。
    buildscript 中设定maven库和依赖。
    我们现在使用内部提供的maven库就可以了。

    buildscript {
        repositories {
            mavenLocal()
            //mavenCentral()
            maven {
                url 'http://10.10.71.97:8081/repository/maven-public/'
            }
        }
        dependencies {
            classpath fileTree(dir: "/lib/classpath", include: '*.jar')
        }
    }
    

    东软库的jar包不是很全,如果东软不行的话,可以考虑使用阿里云的。

        repositories {
            mavenLocal()
            //mavenCentral()
            maven {
                url 'http://maven.aliyun.com/nexus/content/groups/public/'
            }
        }
    

    subprojects表示设定子工程共通项目。
    如果没有子工程,那么我们删除subprojects这层就可以了。

    subprojects {
    
        version = ''
    
        apply plugin: 'java'
        apply plugin: 'eclipse-wtp'
        apply plugin: 'org.springframework.boot'
        apply plugin: 'io.spring.dependency-management'
    
        sourceCompatibility=11
        targetCompatibility=11
    
        repositories {
            mavenLocal()
            //mavenCentral()
            maven {
                url 'http://10.10.71.97:8081/repository/maven-public/'
            }
        }
    
        compileJava {
            options.encoding = 'UTF-8'
        }
        def env = System.getProperty("profile") ?: "dev"
        processResources {
            from('src/main/java') {
                include '**/*.xml'
            }
        }
        if (env == "product") {
            processResources {
                from('/deploy/product/resources') {
                    include '**/*.*'
                }
            }
        }
    }
    
    

    对上面个细类说明

    version = ''
    

    版本号。如果设定会在生成的jar或war名字上,自动加上版本号。我们通常不用。

        apply plugin: 'java'
        apply plugin: 'eclipse-wtp'
        apply plugin: 'org.springframework.boot'
        apply plugin: 'io.spring.dependency-management'
    

    插件。通常设定这4个就好。
    java、eclipse、sprintboot、sprint依赖管理。

        sourceCompatibility=11
        targetCompatibility=11
    

    JDK版本

    repositories {
            mavenLocal()
            //mavenCentral()
            maven {
                url 'http://10.10.71.97:8081/repository/maven-public/'
            }
        }
    

    指定maven仓库。

    compileJava {
            options.encoding = 'UTF-8'
        }
    

    java编译参数。一般我们会设定编译文字code。

        def env = System.getProperty("profile") ?: "dev"
        processResources {
            from('src/main/java') {
                include '**/*.xml'
            }
        }
        if (env == "product") {
            processResources {
                from('/deploy/product/resources') {
                    include '**/*.*'
                }
            }
        }
    

    引入资源。一般我们会使用参数,来配置不同环境使用的资源文件的不同。
    例如 PG时默认使用src/main/resources下面的。IT时使用product/resources下面的等等

    archivesBaseName = 'CCMS'
    

    打成jar包或war包的名字

    war {
        enabled = true
    }
    

    打成war包的设定。是否能打成war包。排除哪些代码不打包等。

    jar {
        enabled = true
        rootSpec.exclude("/*.*")
    }
    

    打成jar报的设置。排除哪些代码不打包等。

    bootJar{
        enabled = false
        excludeDevtools = true
    }
    

    是否打成springbootjar包。如果是batch,就设定为true。如果是common包,不启动,就设定为false。
    排除spring boot 开发工具包。

    dependencies {
        compileOnly fileTree(dir: "lib/compileOnly", include: '*.jar')
        implementation fileTree(dir: "lib/implementation", include: '*.jar')
        implementation fileTree(dir: "lib/providedRuntime", include: '*.jar')
        implementation fileTree(dir: "lib/compile", include: '*.jar')
        providedCompile fileTree(dir: "lib/providedCompile", include: '*.jar')
        testImplementation fileTree(dir: "lib/testcompileOnly", include: '*.jar')
    }
    
    

    依赖哪些jar包。
    注意是有区别的。
    compileOnly只是在编译时使用,并不打入jar或war包。
    testImlementation,只是执行自动测试时打入jar或war包。

    tasks.create("ppms") {
      group 'ppms'
      description 'ppms task'
      doLast {
        println "[phase:execution] ppms start"
      }
    }
    
    

    做成任务。用于执行确认。

    执行

    我们设置完配置文件后,使用gradlew执行就可以了。

    gradlew build -Dprofile=product
    

    build会把说有的标签都执行一遍。
    我们也可以直接指定执行例如

    gradle bootJar -Dprofile=product
    

    -q task名来执行task。
    执行父类的task,可以把group内的task都执行。

    gradlew -q ppms
    

    多工程管理

    有时项目会分成几个子工程。我们通常会先建一个父工程。之后在父工程下关联子工程。
    父工程的settings.gradle中定义各个子工程

    rootProject.name='父工程'
    include ':子工程1',':子工程2',':子工程3'
    

    如果子工程中想引入别的子工程。

    dependencies {
    compile project(':子工程')
    }
    

    gradle资源配置文件

    gradle可能需要设定一些配置。
    例如默认时候,我们不想使用内部maven库,可以在gradle.properties中指定JDK或上网代理

    org.gradle.java.home=D:\\java\\11
    
    systemProp.http.proxyHost=proxy.neusoft.com
    systemProp.http.proxyPort=8080
    systemProp.http.proxyUser=mailuser
    systemProp.http.proxyPassword=mailpassword
    systemProp.http.nonProxyHosts=localhost|10.*.*.*|192.168.*.*
    
    systemProp.https.proxyHost=proxy.neusoft.com
    systemProp.https.proxyPort=8080
    systemProp.https.proxyUser=mailuser
    systemProp.https.proxyPassword=mailpassword
    systemProp.https.nonProxyHosts=localhost|10.*.*.*|192.168.*.*

    如果提示无法下载。
    将上面的url 'http://10.10.71.97:8081/repository/maven-public/'改为阿里仓库
    url 'http://maven.aliyun.com/nexus/content/groups/public/'

    如果提示无法连接proxy.neusoft.com
    将proxy.neusoft.com改为后面的ip

  • 相关阅读:
    JS 页面生成锚点
    JavaScript AMD模块化规范
    Canvas文字的渲染基础 Better
    Canvas曲线绘制 Better
    clickhouse配置登录密码
    git pull 拉取报错:fatal: refusing to merge unrelated histories
    JAVA根据A星算法规划起点到终点二维坐标的最短路径
    JAVA使用netty建立websocket连接
    CSS设置文字超出部分自动换行
    SpringBoot(SpringMVC)使用addViewControllers设置统一请求URL重定向(映射、转发)配置
  • 原文地址:https://www.cnblogs.com/wzihan/p/16561861.html
Copyright © 2020-2023  润新知