gradle使用学习(一)————环境与配置
整理一些学习成果备忘。
首次使用gradle时,如果不配置环境变量,则gradle会在用户目录下(在Windows下是C盘的目录)创建.gradle目录,并将下载的依赖文件保存在这个目录里。
如果不想使用缺省目录,则可以设置环境变量GRADLE_USER_HOME的路径,可改变gradle的缓存目录。
1.使用
执行
gradle tasks看可以使用的tasks
<span style="color:#3366ff;">gradle init</span>可以初始化一个build.gradle文件。
2.建立一个build.gradle文件,增加一行
<span style="color:#3366ff;">apply plugin: 'java'</span>后执行
<span style="color:#3366ff;">gradle tasks</span>可以看到新增加的Task列表。
3.此时执行
<span style="color:#3366ff;">gradle build</span>也可以Build出一个Jar文件
4.使用
<span style="color:#3366ff;">gradle init --type java-library</span>可以创建一个Java工程的目录结构和build.gradle文件。将文件里使用的仓库改使用为Maven的仓库:
<span style="color:#3366ff;">mavenLocal()
mavenCentral()</span>这里的mavenCentral是指外网的Maven服务器,不是私服。如果要使用私服,需要加
<span style="color:#3366ff;">repositories {
maven {
url "http://<自己的IP>/nexus/content/groups/kypublic/"
}
}</span>对于一个软件公司,通常有自己的Maven服务器,
所以不需要加mavenCentral。
虽然使用Maven本地仓库,但gradle执行时还是要读到gradle自己的缓存目录中。
5.下载的gradle工程里面依赖的仓库地址的修改
一般来说可以按上面的方式修改配置文件,如果不想修改开源产品的配置文件,则通过动态修改对Maven服务器请求的地址,也可以转到自己的Maven服务器。
在上面说的gradle的缓存目录下,建一个文件:init.gradle。文件内容如下:
<span style="color:#3366ff;">allprojects{
repositories {
def REPOSITORY_URL = 'http://<自己的IP>/nexus/content/groups/kypublic/'
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
}
}
}</span>这样可以将对外网Maven服务器
的请求,转到使用自已的Maven服务器。
7.将Maven项目转为gradle项目
<span style="color:#3366ff;">gradle init --type pom</span>
8.命名生成的JAR文件
<span style="color:#3366ff;">jar { baseName = 'gs-gradle' version = '0.1.0' }</span>
9.发布到Maven本地
<span style="color:#3366ff;">task sourceJar(type: Jar) {
classifier "sources"
}
publishing {
publications {
mavenJava(MavenPublication) {
groupId 'org.gradle.sample.impl'
artifactId 'project2-impl'
version '2.3'
from components.java
artifact sourceJar
}
}
}</span>
10.发布到Maven仓库
对于发布到snapshots,版本号必需为snapshots的格式,否则发布不成功
<span style="color:#3366ff;">task sourceJar(type: Jar) {
classifier "sources"
}
publishing {
publications {
mavenJava(MavenPublication) {
groupId 'org.gradle.sample.impl'
artifactId 'project2-impl'
version '3.6.0-SNAPSHOT'
from components.java
artifact sourceJar
}
}
}
publishing {
repositories {
maven {
// change to point to your repo, e.g. http://my.org/repo
url "http://<自己的IP>/nexus/content/repositories/snapshots/"
credentials {
username 'user1'
password 'pw1'
}
}
}
}</span>
当然Maven服务器的用户名和密码不应该直接写在工程的配置文件中,可以在gradle的GRADLE_USER_HOME目录下加个gradle.properties文件,内容如下:
<span style="color:#3366ff;">MAVEN_USER=admin
MAVEN_PASSWORD=admin</span>然后将上面的内容改为为
<span style="color:#3366ff;">publishing {
repositories {
maven {
// change to point to your repo, e.g. http://my.org/repo
url "http://<自己的IP>/nexus/content/repositories/snapshots/"
credentials {
username MAVEN_USER
password MAVEN_PASSWORD
}
}
}
}</span>
然后执行命令
<span style="color:#3366ff;">gradle publish</span>
参考:
https://docs.gradle.org/current/release-notes http://www.iteye.com/topic/1134762