一、apply方法的使用
apply <span class="hljs-string">plugin:</span><span class="hljs-string">'java'</span><br><br>apply <span class="hljs-string">plugin:</span>org.gradle.api.plugins.JavaPlugin<br><br>apply <span class="hljs-string">plugin:</span>JavaPlugin<br><br>apply <span class="hljs-string">from:</span><span class="hljs-string">'version.gradle'</span><br>task ex52PrintlnTask {<br>    println <span class="hljs-string">"App版本是:${versionName}, 版本号是:${versionCode}"</span><br>}<br>apply {<br>    plugin <span class="hljs-string">'java'</span><br>    <br>    <br>}<br><br>apply(<span class="hljs-keyword">new</span> Action<objectconfigurationaction>() {<br>    <br>    <span class="hljs-keyword">void</span> execute(ObjectConfigurationAction objectConfigurationAction) {<br>        objectConfigurationAction.plugin(<span class="hljs-string">'java'</span>)<br>    }<br>})<br></objectconfigurationaction>
- 最后一种方式就是自定义一个action,然后在其execute方法中书写业务逻辑
二、使用第三发插件进行配置
buildscript {<br>    repositories {<br>        jcenter()<br>    }<br>    dependencies {<br>        classpath <span class="hljs-string">'com.android.tools.build:gradle:1.5.0'</span><br>        <br>    }<br>}<br>apply <span class="hljs-string">plugin:</span> <span class="hljs-string">'com.android.application'</span>
三、plugins DSL方式
plugins {<br>    id <span class="hljs-string">'java'</span><br>}<br>
- 使用这种方式和上面还是有一定差异,如果插件已经托管在了https://plugins.gradle.org/ 上,就可以不用在buildscript中配置classpath的依赖了,直接使用即可
plugins {<br> id <span class="hljs-string">"org.sonarqube"</span> version <span class="hljs-string">"1.2"</span><br>}
四、自定义插件
apply <span class="hljs-string">plugin:</span> zidingyiPlugin<br><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">zidingyiPlugin</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Plugin</span><<span class="hljs-title">Project</span>> {</span><br>    <span class="hljs-keyword">void</span> apply(Project project) {<br>        project.task(<span class="hljs-string">'zidingyiPlugin'</span>) {<br>            println <span class="hljs-string">"自定义插件"</span><br>        }<br>    }<br>}
- 下面新建一个Groovy工程,自定义个jar包
<span class="hljs-keyword">package</span> com.example.myapplication;<br><br><span class="hljs-keyword">import</span> org.gradle.rujews.plugin;<br><span class="hljs-keyword">import</span> org.<br><br><br><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">CustomPlugin</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Plugin</span><<span class="hljs-title">Project</span>></span>{<br>    <br>    <span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">apply</span><span class="hljs-params">(Project target)</span> </span>{<br>        target.task(<span class="hljs-string">"CustomTask"</span>) {<br>            println <span class="hljs-string">"自定义插件"</span><br>        }<br>    }<br>}
- 插件开发所需要的依赖
apply <span class="hljs-string">plugin:</span> <span class="hljs-string">'groovy'</span><br><br>dependencies {<br>    compile gradleApi()<br>    compile localGroovy()<br>}
- 在src/main/resources/META-INF/gradle-plugins目录下新建一个plugin id的properties文件内容为
implementation-class=com.example.myapplication.CustomPlugin
- 然后再build.gradle中使用
buildscript {<br>    dependencies {<br>        classpath file(<span class="hljs-string">'lib/CustomPlugin'</span>)<br>    }<br>}
五、Java插件约定的项目结构
apply <span class="hljs-string">plugin:</span><span class="hljs-string">'java'</span><br><br>sourceSets {<br>    custom {<br><br>    }<br>}<br><br><br><br>sourceSets {<br>    main {<br>        java {<br>            srcDir <span class="hljs-string">'src/java'</span><br>        }<br>        resources {<br>            srcDir <span class="hljs-string">'src/resources'</span><br>        }<br>    }<br>}
六、配置第三方依赖
repositories {<br>    mavenCentral() <br>    maven {<br>        url <span class="hljs-string">'http://www.mavenurl.com'</span><br>    }<br>}<br><br>dependencies {<br>    compile <span class="hljs-string">group:</span> <span class="hljs-string">'com.squareup.okhttp3'</span>, <span class="hljs-string">name:</span> <span class="hljs-string">'okhttp'</span>, <span class="hljs-string">version:</span> <span class="hljs-string">'3.0.1'</span><br>    <br>}
- 配置中心仓的方式,上面是配置了下载地点,下面是配置了要依赖什么组件
<br>dependencies {<br>    compile project(<span class="hljs-string">':exampleCustom'</span>)<br>}
- 依赖一个project,那么我们的工程中可以随便用这个依赖的工程中的类,就像都在一个工程里面一样。
- 除此之外,gradle还可以给不同的源码指定不同的依赖
dependencies {<br>    mainCompile <span class="hljs-string">'com.squareup.okhttp3:okhttp:3.0.1'</span><br>    vipCompile <span class="hljs-string">'com.squareup.okhttp:okhttp:2.5.0'</span><br>}
文件依赖
- 我们把自有的一个jar放到本地,进行锁定依赖
dependencies {<br>    complie file(<span class="hljs-string">'libs/jdis.jar'</span>, <span class="hljs-string">'libs/nngi.jar'</span>)<br>}<br><br>dependencies {<br> <br>    compile fileTree(<span class="hljs-string">dir:</span><span class="hljs-string">'libs'</span>, <span class="hljs-string">includes:</span><span class="hljs-string">'*.jar'</span>)<br>}
七、构建一个Java项目
- build任务,比如clean,可以清除以前编译生成的文件,如果编译有问题,可以先执行clean,清理
- assemble任务,该任务不会执行单元测试,只会编译和打包,这个任务在Android里也有,执行它可以打apk包。
- check任务,只会执行单元测试,不会打jar包
- javadoc任务,生成我们需要的doc api文档
八、源码
- gitee路径:https://gitee.com/dongqianrui/AndroidStudioProject/tree/master/Test1
- CSDN:https://blog.csdn.net/weixin_44630050
- 博客园:https://www.cnblogs.com/ruigege0000/
Original: https://www.cnblogs.com/ruigege0000/p/16205331.html
Author: 心悦君兮君不知-睿
Title: Gradle连载4-依赖包打包方式
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607824/
转载文章受原作者版权保护。转载请注明原作者出处!