Java管理——Gradle使用速记
安装
安装SDKMAN
Gradle在安装之前可以选择很多安装方式,这里选择SDKMAN。其他方式见安装说明。
linux安装SDKMAN,分别执行:
# 下载安装执行 $ curl -s "https://get.sdkman.io" | bash # 自行设置 $ source "$HOME/.sdkman/bin/sdkman-init.sh"
安装结果测试。
输入:
$ sdk version
成功安装会输出:
==== BROADCAST ================================================================= * 02/07/18: Kscript 2.4.5 released on SDKMAN! #kscript * 28/06/18: Micronaut 1.0.0.M2 released on SDKMAN! #micronautfw * 27/06/18: Infrastructor 0.2.0 rolling out. With stronger encryption and new task progress UI. ================================================================================ SDKMAN 5.6.4+305
安装Gradle
Gradle需要JDK7以上才能运行,请先使用 java -version 命令确定环境。
使用SDKMAN安装Gradle:
# 4.8.1是当前gradle的版本,根据需要调整 $ sdk install gradle 4.8.1
安装完成后输入gradle -v检查安装结果:
$ gradle -v ------------------------------------------------------------ Gradle 4.8.1 ------------------------------------------------------------
Gradle基础要点知识
- 一个Gradle文件(例如build.gradle)视为一个project。在Gradle的项目组织中就2个层级——Project和Task。
- 在Gradle中有3个重要的概念Project、Plug、Task。三者的关系:Project就是一个容器,里面可以放置各种类型的Task,Plug是一堆Task的集合。
- Gradle中所有的功能都是以一个Task实现的,包括Jar包的依赖。
- Properties:Project和Task都有自己的属性(Properties)。Project级别的属性可以设置,也可以通过外部传入。
一个配置案例
/** build.gradle 这是一个使用 gradle init --type java-application创建的Gradle Project,进行了一些修改 整个文件的范围都是一个Project。 **/ // --------------------------------------------------------------------- // 引入预设的Plug // 一个plug中会包含多个Task // plugins是Project的一个方法 // 里面的id实际上也是一个方法。 plugins { id 'java' id 'application' } // 资源路径的设置参数。用于java plug中的task // Gradle的资源路径和Maven的几乎一样,也可以单独配置 sourceSets { main { java { srcDir 'src/main/java' } resources { srcDir 'src/main/resources' } } } //----------------------------------- /** 如果不设置,资源路径默认为: src { main{ java res } test{ java res } } **/ //----------------------------------- // mainClassName可以理解为一个变量 // 定义这个程序的Main Class,实际上这也是在设定一个Project的属性 mainClassName = 'App' //预设一个用于装载结构的类,Gradle使用groovy语法 class GroupAndVersion { String group String version } // 向project添加一个名为“spring”的属性,属性的值是一个GroupAndVersion的一个实例。 // ext是Project的一个方法,作用就是添加一个属性。 ext { spring = new GroupAndVersion(group:'org.springframework', version:'5.0.7.RELEASE') } // dependencies 是由某个plug中的预设的“方法”, // Gradle是groovy语法,这里就是执行Project.dependencies方法 // Plug中可以用project.extensions.create扩展Project中的定义方法 dependencies { //compile表示引入包的执行域 compile 'com.google.guava:guava:23.0' //使用定义好的属性引入包 compile group: spring.group, name: 'spring-core', version: spring.version compile group: spring.group, name: 'spring-beans', version: spring.version compile group: spring.group, name: 'spring-context', version: spring.version testCompile 'junit:junit:4.12' } // repositories与dependencies一样的性质,同样会被用于某个task // repositories用于指定依赖仓库 repositories { jcenter() } // 自定义的一个任务,用于呈现当前依赖包的物理地址 task show << { println configurations.compile.asPath }
配置文件对应的工程结构:
project --bin IDE动态编译的文件(Eclipse) ----main ----test --build 运行gradle build命令生成的文件 ---- classes Java 工程目录对应的.class文件 ---- distributions 打包之后的压缩包 ---- lib 打包之后的jar ---- report 测试报告 ---- scripts 打包之后的启动脚本 ---- test-result 测试结果 ---- tmp 临时文件,比如会在打包jar之前临时存放MANIFEST.MF --gradle gradle执行相关的文件,比如gradle-wrapper --src 源码和资源 ----main ----text --build.gradle --gradlew --settings.gradle
设置仓库源
默认情况下Gradle会使用Maven或Ivy的中央仓库,在当前用户的${home}.gradle文件下新建一个init.gradle文件,然后写入:
allprojects{ repositories { def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/' all { ArtifactRepository repo -> if(repo instanceof MavenArtifactRepository){ def url = repo.url.toString() if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) { project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL." remove repo } } } maven { url REPOSITORY_URL } } }
这样链接的仓库会执行国内的阿里镜像。
快速初始化项目
Gradle提供了初始化各自类型项目的命令:
$ gradle init --type <name> # <name>取以下值 # java-application java应用程序 # java-library jar包 # scala-library scala包 # groovy-library groovy包 # basic 基本工程 # 配置出来的工程结构都可以在后期通过修改build.gradle修改

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
ecshop 全系列版本网站漏洞 远程代码执行sql注入漏洞
ecshop漏洞于2018年9月12日被某安全组织披露爆出,该漏洞受影响范围较广,ecshop2.73版本以及目前最新的3.0、3.6、4.0版本都受此次ecshop漏洞的影响,主要漏洞是利用远程代码执行sql注入语句漏洞,导致可以插入sql查询代码以及写入代码到网站服务器里,严重的可以直接获取服务器的管理员权限,甚至有些网站使用的是虚拟主机,可以直接获取网站ftp的权限,该漏洞POC已公开,使用简单,目前很多商城网站都被攻击,危害较大,针对于此我们SINE安全对该ECSHOP漏洞的详情以及如何修复网站的漏洞,及如何部署网站安全等方面进行详细的解读。 ecshop漏洞产生原因 全系列版本的ecshop网站漏洞,漏洞的根源是在网站根目录下的user.php代码,在调用远程函数的同时display赋值的地方可以直接插入恶意的sql注入语句,导致可以查询mysql数据库里的内容并写入数据到网站配置文件当中,或者可以让数据库远程下载文件到网站目录当中去。 此referer里的内容就是要网站远程下载一个脚本大马,下载成功后会直接命名为SINE.php,攻击者打开该文件就可以执行对网站的读写上传...
- 下一篇
推荐 :2018最流行的编程语言Top 3
由于现在的编程语言种类繁多,决定用哪种语言来完成任务成了一项艰巨的任务。在决定「最佳」语言之前,你应该对包括个人喜好和备选语言在内的多个因素进行评估。 Bautista 有超过四年的 web 开发经验,目前正在向人们传授开发技巧。他说,「在 2018 年,为待处理的项目选择合适编程语言的最好方法是研究一下科技行业的动态。」 科技行业会提供一些重要的趋势和信号,你可以根据它们做决定。例如,如果你知道 2018 年最赚钱或最流行的编程语言,你就可以做出适当的调整,多关注一下这些编程语言。 我们在本文中根据一些资源进行了评估,提出了 2018 年最热的三种编程语言。 1. JavaScript JavaScript 是一种动态编程语言,常用于增加网站的交互性。 人们一般认为这是一种「初学者友好」的语言,这种特性增加了 JavaScript 在开发者社区中的使用量。 Stack Overflow 是一个很流行的网站,开发人员使用该网站分享技术方面的内容。该网站会进行年度调查,从开发者社区中得到一些有用的统计数据,数据从开发者的工资到他们最喜欢的技术都有涉及。 2018 年 1 月,该网站调查了...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Hadoop3单机部署,实现最简伪集群
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度