Gradle和Maven一样,是Java用得最多的构建工具之一,在Maven之前,解决jar包引用的问题真是令人抓狂,有了Maven后日子就好过起来了,而现在又有了Gradle,Maven有的功能它都有,且看起来更漂亮,咱么就用起来吧。
装好Intellij IDEA之后,Gradle也就默认装好了,现在我们仅需直接创建工程:
当然选择Java了,Next:
GroupId,ArtifactId和Version,咋看起来和Maven一样?其实就是一样,后面我们还继续使用Maven的仓库呢。Next:
Use auto-import和Create directories for empty content roots automatically这两个选项勾上,Next:
[图片上传失败...(image-52ddb1-1663828890636)]
填入项目名称,位置,OK,Finish。我们来看看项目的目录结构:
- .gradle,gradle的相关支持文件,不用管
- .idea,IntelliJ IDEA的相关文件,不用管
- build,构建生成物,存放项目构建中生成的class和jar包
- gradle,一个gradle的包装程序,貌似直接用gradle不太好,得再包一层,这个其实我们也不用管
- src,我们写代码的地方,不用说了吧
- build.gradle,gradle的构建配置,这是我们要关心的,相当于Maven的pom.xml
- GradleLearn.iml,IntelliJ IDEA的项目文件
- gradlew,一段gradle wrapper的运行脚本,For *nix
- gradlew.bat,一段gradle wrapper的运行脚本,For Windows
我用上一篇文章提供的小程序为例子(Java的异步HttpClient),看看如何引入httpasyncclient,打开我们新的“pom.xml”(build.gradle):
group 'com.gornix'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenLocal()
mavenCentral()
}
</pre>
<pre>tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}</pre>
<pre>dependencies {
compile group: 'org.apache.httpcomponents', name:'httpasyncclient', version:'4.1.1'
testCompile group: 'junit', name: 'junit', version: '4.11'
}
红色字体部分是我修改过的,看看build.gradle是不是比pom.xml好看多了,相当简练对吧。
其中mavenCentral()句话的意思是使用Maven的容器获取依赖,而加上mavenLocal()这句话之后,Gradle会尝试先从本地Maven缓存中获取jar包,这样会更快一些,下面的dependencies则是各种依赖包了,compile表示编译时依赖,而testCompile表示执行单元测试时的编译的依赖。task.withType()这段表示使用UTF-8编码,为了避免编译的问题,我们全部使用UTF-8编码即可,嗯,是全部文本文件!
OK,点一下Gradle工具窗口中的刷新:
这时候你展开Project窗口中的External Libraries查看的话,应该就能看到相关的包被引用进来了。
别的好像没什么差别了,这篇文章仅仅是一篇“简单入门”文章,所以没太多内容,我们仍然看不到Gradle比Maven强去哪里,仅仅是配置文件好看了点,等以后如有时间,我再来整理整理了