博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gradle 自定义插件 下载配置文件
阅读量:6714 次
发布时间:2019-06-25

本文共 3352 字,大约阅读时间需要 11 分钟。

1.新建Gradle项目:

2.建立src/main/groovy目录,并添加如下代码:

ConfigPlugin.groovy package com.wemall.configimport org.gradle.api.Pluginimport org.gradle.api.Projectclass ConfigPlugin implements Plugin
{ void apply(Project project) { project.extensions.create("configPluginExtension", ConfigPluginExtension) project.task("configTask", type: ConfigTask) }}
 
ConfigTask.groovy
package com.wemall.configimport org.gradle.api.DefaultTaskimport org.gradle.api.tasks.TaskActionimport groovy.swing.impl.DefaultActionimport groovy.xml.Namespaceimport groovy.xml.StreamingDOMBuilderclass ConfigTask extends DefaultTask {        static final String CONFIG_CENTER_URL = "http://192.168.127.137:8080/config-center-0.0.1-SNAPSHOT/";    @TaskAction    void download() {            def names = project.configPluginExtension.name;        def version = project.configPluginExtension.version;                names.each { name ->                         def inputStream = new URL(CONFIG_CENTER_URL + name).openStream();                        println ("${project.projectDir} , ${project.buildDir}, ${project.rootDir}, ${project.resources}");                        def file = new File("${project.projectDir}/src/main/resources/${name}");            file.withOutputStream {                 outputStream ->                     outputStream << inputStream;            }        }    }    }
 
ConfigPluginExtension.groovy
package com.wemall.configclass ConfigPluginExtension {    def name = [];    def version = "";}

3.在src/main/resources下建立MEAT-INFO/gradle-plugins目录,并添加com.wemall.config.properties配置文件

com.wemall.config.properties内容,这个properties文件的名称,就为自定义Gradle插件名称.implementation-class=com.wemall.config.ConfigPlugin

4.build.gradle文件内容:

apply plugin: 'groovy'apply plugin: 'maven'apply plugin: 'maven-publish'dependencies {    compile gradleApi()    compile localGroovy()}group='com.wemall.config'version='1.0.7-SNAPSHOT'publishing {    publications {        maven(MavenPublication) {            groupId project.group            artifactId project.name            version project.version            //若是war包,就写components.web,若是jar包,就写components.java            from components.java        }    }    repositories {        maven {                if (project.version.endsWith('-SNAPSHOT')) {                url = "http://192.168.184.155:8081/repository/maven-snapshots/"            } else {                url = "http://192.168.184.155:8081/repository/maven-releases/"            }                credentials {                username 'admin'                password 'admin123'            }        }        }    }

5.发布接入到nexus仓库中:

6.其他gradle项目引入插件:

buildscript {    repositories {        maven {            url 'http://192.168.184.155:8081/repository/maven-public/'        }    }        dependencies {        classpath group: 'com.wemall.config',name: 'config-plugin',version: '1.0.7-SNAPSHOT'    }}plugins {    id 'java-library'}apply plugin: 'com.wemall.config'dependencies {    testImplementation 'junit:junit:4.12'}configPluginExtension {    name = ["a.properties", "b.properties", "c.properties"]    version = "1.0.0-SNAPSHOT"}

7.在引入插件的项目中运行插件:

gradlew -q configTask

此时configTask插件就可以连接到网址的配置中上下载配置文件。configTask名称为ConfigPlugin.groovy文件中的project.task("configTask", type: ConfigTask)字符串名称。

 

github:https://github.com/dingyingsi/configuration-download-plugin

 

转载地址:http://rbalo.baihongyu.com/

你可能感兴趣的文章
c++ bind的简单使用 实例
查看>>
(翻译)Angular 1.3中的验证器管道
查看>>
Web网站的性能测试工具
查看>>
【linux+C】通过几个实例温习指针
查看>>
I.MX6 Manufacturing Tool V2 (MFGTool2) Emmc mksdcard.sh hacking
查看>>
异步复位同步释放
查看>>
HDU 1241 Oil Deposits
查看>>
spring事务配置
查看>>
EALayout 实践
查看>>
Software development --daily scrum team
查看>>
B1036. 跟奥巴马一起编程(15)
查看>>
软件项目后期收官时的一些问题和想法
查看>>
机器学习:线性回归
查看>>
PHP连接PostgreSQL连接问题
查看>>
WebService案例入门(基础篇)
查看>>
回档|NOIP2012 同余方程
查看>>
久违的博客园
查看>>
Alpha冲刺(9/10)
查看>>
【转】B树的插入和删除
查看>>
一个小案例明白onLayout()、onMeasure()方法的作用
查看>>