11、我们再执行./gradlew uploadArchives --stacktrace又会发现如下问题,miss了一个file,想想漏了什么,我们没有指明pluginId
补上它,在main/resources下创建META-INF/gradle-plugins文件夹,在里面建一个properties文件,文件名随便起(包名格式),比如就叫com.apple.propeties,文件里配置类名
implementation-class=com.fish.FirstPlugin
好了run it,此时插件就生成了,生成的插件是主要是jar包和配置文件,结构如下
使用插件
现在插件已经写好了,怎么使用他呢?
new一个AS工程,叫UseShip好了。然后在根目录的build.gradle加依赖 classpath com.netease:ship:1.0
,在app的build.gradle加apply plugin: com.apple
。现在插件就导进来了,我们在执行apply plugin: com.apple
的时候会调用FirstPlugin的apply方法,在apply方法内我们定义了一个showTipTask,这个task在funny这个group下,来,我们验证下,如下所示 ,果然找到了这个task
此时可以在terminal下执行./gradlew showTips,得到了正确结果,显示 “hello I am the first custom plguin”
192:UseShip fish$ ./gradlew showTipsTo honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html.Incremental java compilation is an incubating feature.:app:showTipshello I am the first custom plguinBUILD SUCCESSFULTotal time: 9.344 secs其他
我们这里pluginId故意起的跟GroupId、ArtifictId没什么关系,是为了区分清楚,但实际上他们往往是关联的。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-35525-3.html
唯一赚到钱的是豆瓣