gradle使用学习(一)————环境与配置

来源:互联网 发布:杰科网络电视机顶盒r1 编辑:程序博客网 时间:2024/04/30 09:19

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.javaartifact 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.javaartifact 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=adminMAVEN_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-noteshttp://www.cnblogs.com/xguo/p/3175377.htmlhttp://www.iteye.com/topic/1134762


0 0