gradle 自定义插件 下载配置文件

1.新建Gradle项目:

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

ConfigPlugin.groovy

package com.wemall.config

import org.gradle.api.Plugin
import org.gradle.api.Project

class ConfigPlugin implements Plugin<Project> {

    void apply(Project project) {
        project.extensions.create("configPluginExtension", ConfigPluginExtension)
        project.task("configTask", type: ConfigTask)
    }
}

ConfigTask.groovy
package com.wemall.config

import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction

import groovy.swing.impl.DefaultAction
import groovy.xml.Namespace
import groovy.xml.StreamingDOMBuilder

class 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.config

class 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)字符串名称。

原文地址:https://www.cnblogs.com/dingyingsi/p/9517699.html

时间: 2024-12-09 14:43:43

gradle 自定义插件 下载配置文件的相关文章

Gradle自定义插件

Gradle自定义插件 在Gradle中创建自定义插件,Gradle提供了三种方式: 在build.gradle脚本中直接使用 在buildSrc中使用 在独立Module中使用 开发Gradle插件可以在IDEA中进行开发,也可以在Android Studio中进行开发,它们唯一的不同,就是IDEA提供了Gradle开发的插件,比较方便创建文件和目录,而Android Studio中,开发者需要手动创建(但实际上,这些目录并不多,也不复杂,完全可以手动创建). 在项目中使用 在Android

gradle 自定义插件

gradle自定义规则有:目录规则树 默认是src-> mainresources就只用这样properties里面写类名:格式: implementation-class=com.allen.rujews.plugins.allen liuhailongdeMacBook-Air:allen liuhailong$ tree . ├── build.gradle └── src └── main ├── groovy │?? └── com │?? └── allen │?? └── ruje

com.android.tools.build:gradle:X.XX.XX:gradle.jar 插件无法下载问题

在使用Android Studio 这个IDE时,出现com.android.tools.build:gradle:X.XX.XX:gradle.jar 插件无法下载问题 可能的原因就是网速不好或者依赖仓库的下载网址被墙了,可以配置代理试试.比如,android studio 定义的默人依赖仓库为jcenter()仓库.如下 打开项目下的 build.gradle文件,不是Module下 allprojects { repositories { jcenter() } } 网上搜索到一些方法如下

cordova3.X 运用grunt生成plugin自定义插件骨架

Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头.麦克风等.Cordova还提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码. 一.安装cordova npm install -g cordova 二.创建项目 cordova create hello com.blue.sky.hybrid.app.hello HelloWorld 三.添加平台支持 cd hello cordova pl

BrnShop开源网上商城第四讲:自定义插件

重要通知:BrnShop企业版NOSQL设计(基于Redis)已经开源!源码内置于最新版的BrnShop中,感兴趣的园友可以去下载来看看.官网地址:www.brnshop.com. 好了现在进入今天的正题:自定义插件.上一讲中我们已经阐述了BrnShop插件的工作机制,现在我们详细介绍下如何自定义插件.首先BrnShop的插件从功能上分为三类,分别是: 开放授权插件(OAuth) 支付插件 配送插件 对应的接口文件(注:位于BrnShop.Core项目的Plugin/Base文件夹中)依次如下:

ElasticSearch 5.4 自定义插件

ElasticSearch 做为数据仓库处理速度确实很强,但是很多和业务相关的函数ElasticSearch怎么支持的,通过查询发现,ElasticSearch支持自定义插件(相当于自定义函数),通过自定义插件,开发人员可以实现各种业务相关的函数定义供相关人员使用. 1.   ElasticSearch  自定义插件编写 后续补充. 2.  ElasticSearch  自定义插件打包 2.1  自定义插件开发完成后,需要增加“plugin-descriptor.properties”配置文件,

cordova android项目自定义插件及使用(一)

--新建cordova项目 cordova create Myproj com.myproj.test MyTestProj --添加平台及设备 cd Myproj cordova platform add android cordova platform add ios cordova plugin add org.apache.cordova.device --然后这个时候打开项目目录是这个样子的 config:应用的配置信息 platforms:应用支持的平台目录 plugins:安装的插

gradle ssh 插件

org.hidetake.ssh Gradle SSH Plugin is a Gradle plugin which provides remote command execution and file transfer features. https://gradle-ssh-plugin.github.io 远程部署插件, 可以远程传输文件,也可以执行远程shell命令 配置build.gradle文件 插件官方网址https://gradle-ssh-plugin.github.io/g

问题:MSChart.exe;结果:微软图表控件MsChart使用方法及各种插件下载地址

微软图表控件MsChart使用方法及各种插件下载地址 (2012-08-10 17:32:33) 转载▼ 标签: 图表 控件 下载地址 kernel32 微软 it 分类: C# 昨天在网上看到了微软发布了.NET 3.5框架下的图表控件,第一时间抓下来看了一下,发觉功能很强劲,基本上能想到的图表都可以使用它绘制出来,给图形统计和报表图形显示提供了很好的解决办法,同时支持Web和WinForm两种方式,不过缺点也比较明显,只能在最新的开发环境中使用,需要.Net 3.5 Sp1以及VS 2008