Using Of Gradle

这篇博客介绍了Gradle的使用,包括其与Maven的相似性、构建过程中的关键概念如project、task和plugin。文章详细讲解了如何配置环境,特别是Java插件的应用,如build、clean、assemble等任务,以及如何配置仓库和依赖。此外,还展示了如何在build.gradle文件中设置项目属性和发布到不同仓库。最后,提到了settings.gradle文件在多项目构建中的作用。

序言

基于官网整理下Gradle的使用.使用过maven的话会很容易掌握,多用一段时间就熟悉了.

另外很多的参数信息配置都是基于插件的,你引用不同的插件就会有不同的参数设置.其实最多的工作量就是根据插件来配置参数信息cuiyaonan2000@163.com

官网地址:https://www.w3cschool.cn/gradle/3miy1htt.html

gradle的构建过程中的几个关键词:

  1. project :  gradle的目标结果就是project,project在java中对应jar,war
  2. task: task即字面意思任务,构建project为jar即为一个task
  3. plugin: 即task的实际执行者.插件就是 Gradle 的扩展,简而言之就是为你添加一些非常有用的默认配置。Gradle 自带了很多插件,并且你也可以很容易的编写和分享自己的插件.

配置环境

  • 运行 gradle 必须将 GRADLE_HOME/bin 加入到你的 PATH 环境变量中。

  • Gradle 运行时的 JVM 参数可以通过 GRADLE_OPTS JAVA_OPTS 来设置.这些参数将会同时生效。 JAVA_OPTS 设置的参数将会同其它 JAVA 应用共享,一个典型的例子是可以在 JAVA_OPTS 中设置代理和 GRADLE_OPTS 设置内存参数。同时这些参数也可以在 gradle 或者 gradlew 脚本文件的开头进行设置。
  • gradle -v  用来验证是否配置环境是否成功

Java插件

java插件即包含了多个任务,常用的任务如下:

  1. build:   相当于maven的package.
  2. clean:   删除 build 目录以及所有构建完成的文件。
  3. assemble:   编译并打包 jar 文件,但不会执行单元测试。一些其他插件可能会增强这个任务的功能。例如,如果采用了 War 插件,这个任务便会为你的项目打出 War 包。
  4. check:  编译并测试代码。一些其他插件也可能会增强这个任务的功能。例如,如果采用了 Code-quality 插件,这个任务会额外执行 Checkstyle。
  5. uploadArchives : 用于上传jar,根据配置将打好的jar上传到本地仓库,或者远程仓库

build是多个任务的串序执行如下所示:

Output of gradle build
> gradle build
:compileJava
:processResources
:classes
:jar
:assemble
:compileTestJava
:processTestResources
:testClasses
:test
:check
:build
BUILD SUCCESSFUL
Total time: 1 secs

同时java插件的构建默认的打包目录如下所示:

Gradle 默认会从 src/main/java 搜寻打包源码,在 src/test/java 下搜寻测试源码。并且 src/main/resources 下的所有文件按都会被打包,所有 src/test/resources 下的文件 都会被添加到类路径用以执行测试。所有文件都输出到 build 下,打包的文件输出到 build/libs 下。

project  
    +build  
    +src/main/java  
    +src/main/resources  
    +src/test/java  
    +src/test/resources  

build.gradle

//引用java插件
apply plugin: 'java'

//需要打包 War 文件,需要在脚本中使用 War plugin:
apply plugin: 'war'


//引用eclipse插件
apply plugin: 'eclipse'

//设置java插件的的jdk版本
sourceCompatibility = 1.5

//如下的是为java插件设置一些属性到manifest中
version = '1.0'
jar {
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version
    }
}

//设置jar包和插件拉取的仓库,如下的是默认maven的中央仓库
repositories {

  //默认maven的中央仓库
  mavenCentral()

  //引用私有的maven仓库
  maven {
        url "http://repo.mycompany.com/maven2"
  }

 //设置本地的仓库
 ivy { // URL can refer to a local directory
        url "../local-repo"
 }
}


//这里添加工程需要的jar和对应的版本.
dependencies {
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    testCompile group: 'junit', name: 'junit', version: '4.+'
    
    //如下标识引入Hibernate-core.3.6.7.final.jar
    compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'

    //同时也可以简写成如下的格式
    compile 'org.hibernate:hibernate-core:3.6.7.Final'


}


//这里是系统属性,具体怎么用还带继续查看
test {
    systemProperties 'property': 'value'
}


//将该工程发布到本地的仓库
uploadArchives {
    repositories {
       flatDir {
           dirs 'repos'
       }
    }
}

//将该工程发布到ivh仓库
uploadArchives {
    repositories {
        ivy {
            credentials {
                username "username"
                password "pw"
            }
            url "http://repo.mycompany.com"
        }
    }
}

//将该工程发布到maven仓库
//发布到 Maven 仓库你需要 Maven 插件的支持
apply plugin: 'maven'
uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "file://localhost/tmp/myRepo/")
        }
    }
}



//如果该工程是个工程集合,子工程可以的一些共有信息可以写在父级工程的 build.gradle
//如下表示子工程的内容设置地方
subprojects {
    apply plugin: 'java'
    apply plugin: 'eclipse-wtp'
    repositories {
       mavenCentral()
    }
    dependencies {
        testCompile 'junit:junit:4.11'
    }
    version = '1.0'
    jar {
        manifest.attributes provider: 'gradle'
    }
}

dependencies 应用的jar包可选择作用生效的阶段

  1. compile: 编译范围依赖在所有的 classpath 中可用,同时它们也会被打包
  2. runtime: runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要 JDBC API JAR,而只有在运行的时候才需要 JDBC 驱动实现
  3. testCompile: 测试期编译需要的附加依赖
  4. testRuntime: 测试运行期需要

settings.gradle

该文件主要用于构建多个包的层级设置,即标识该工程中包含了多个少个子工程.

//标识该目录下有4个工程分别是 shared,api,service:webservice,service:shared
include "shared", "api", "services:webservice", "services:shared"

内容概要:本文是一份针对2025年中国企业品牌传播环境撰写的《全网媒体发稿白皮书》,聚焦企业媒体发稿的策略制定、渠道选择与效果评估难题。通过分析当前企业面临的资源分散、内容同质、效果难量化等核心痛点,系统性地介绍了新闻媒体、央媒、地方官媒和自媒体四大渠道的特点与适用场景,并深度融合“传声港”AI驱动的新媒体平台能力,提出“策略+工具+落地”的一体化解决方案。白皮书详细阐述了传声港在资源整合、AI智能匹配、舆情监测、合规审核及全链路效果追踪方面的技术优势,构建了涵盖曝光、互动、转化与品牌影响力的多维评估体系,并通过快消、科技、零售等行业的实战案例验证其有效性。最后,提出了按企业发展阶段和营销节点定制的媒体组合策略,强调本土化传播与政府关系协同的重要性,助力企业实现品牌声量与实际转化的双重增长。; 适合人群:企业市场部负责人、品牌方管理者、公关传播从业者及从事数字营销的相关人员,尤其适用于初创期至成熟期不同发展阶段的企业决策者。; 使用场景及目标:①帮助企业科学制定媒体发稿策略,优化预算分配;②解决渠道对接繁琐、投放不精准、效果不可衡量等问题;③指导企业在重大营销节点(如春节、双11)开展高效传播;④提升品牌权威性、区域渗透力与危机应对能力; 阅读建议:建议结合自身企业所处阶段和发展目标,参考文中提供的“传声港服务组合”与“预算分配建议”进行策略匹配,同时重视AI工具在投放、监测与优化中的实际应用,定期复盘数据以实现持续迭代。
先展示下效果 https://pan.quark.cn/s/987bb7a43dd9 VeighNa - By Traders, For Traders, AI-Powered. Want to read this in english ? Go here VeighNa是一套基于Python的开源量化交易系统开发框架,在开源社区持续不断的贡献下一步步成长为多功能量化交易平台,自发布以来已经积累了众多来自金融机构或相关领域的用户,包括私募基金、证券公司、期货公司等。 在使用VeighNa进行二次开发(策略、模块等)的过程中有任何疑问,请查看VeighNa项目文档,如果无法解决请前往官方社区论坛的【提问求助】板块寻求帮助,也欢迎在【经验分享】板块分享你的使用心得! 想要获取更多关于VeighNa的资讯信息? 请扫描下方二维码添加小助手加入【VeighNa社区交流微信群】: AI-Powered VeighNa发布十周年之际正式推出4.0版本,重磅新增面向AI量化策略的vnpy.alpha模块,为专业量化交易员提供一站式多因子机器学习(ML)策略开发、投研和实盘交易解决方案: :bar_chart: dataset:因子特征工程 * 专为ML算法训练优化设计,支持高效批量特征计算与处理 * 内置丰富的因子特征表达式计算引擎,实现快速一键生成训练数据 * Alpha 158:源于微软Qlib项目的股票市场特征集合,涵盖K线形态、价格趋势、时序波动等多维度量化因子 :bulb: model:预测模型训练 * 提供标准化的ML模型开发模板,大幅简化模型构建与训练流程 * 统一API接口设计,支持无缝切换不同算法进行性能对比测试 * 集成多种主流机器学习算法: * Lass...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cuiyaonan2000

给包烟抽吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值