阿里云maven仓库

作者:Rui 发布时间:November 16, 2016 分类:JAVA 浏览:663

在国内使用maven,因为国情原因,下载速度非常慢,之前oschina在国内做了个一个中央仓库,但是现在已经无法使用。幸运的是,aliyun现在也悄悄推出了maven新仓库。给国内的maven和gradle使用者带来了福音。

Maven仓库地址:
http://maven.aliyun.com/nexus/#view-repositories;public~browsestorage

Mave 配置阿里云,在setting.xml配置mirror

<mirror>
   <id>nexus-aliyun</id>
   <mirrorOf>*</mirrorOf>
   <name>Nexus aliyun</name>
   <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror> 

Gralde中使用aliyun的源

buildscript {
    repositories {
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
    }
}

repositories {
    maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}

Gradle Application Plugin自定义Start Script

作者:Rui 发布时间:August 22, 2016 分类:JAVA 浏览:768

Gradle Application Plugin用于简化java项目打包成可执行的脚本程序的过程,可以极大的简化打包和执行java程序的过程。

使用简介

只要在Gradle的配置文件中添加一些配置即可,其中mainClassName 指向启动Main方法所在的类

apply plugin: 'application'
mainClassName = "com.rapid.develop.core.server.ApplicationServer"

之后执行Application Plugin的distZip或者distTar就会将程序打包为zip和tar包,解压后,在Bin目录下有两个脚本,分别是window和linux的执行脚本。

阅读剩余部分...

Baidu 云服务Gradle 插件

作者:Rui 发布时间:March 11, 2016 分类:JAVA,BIGDATA 浏览:401

基于Gradle 开发的便于开发基于Baidu云服务的程序,插件采用Gradle Rule Base Model 形式开发

Baidu 云服务Gradle 插件支持 发布文件到OSS 和创建百度Hadoop集群并执行 Map-Reduce程序

使用示例代码:

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "gradle.plugin.org.rapid.develop:baidu-cloud-plugin:1.1"
  }
}

apply plugin: "org.rapid.develop.baidu-cloud-plugin"

model {
    baidu {
        accessKey = 'accessKey'
        secretKey = 'secretKey'
        // OSS 上传设置
        // 上传 文件到指定的bucketName
        ossPublish {
            bucketName = 'bucketName'
            files = [jar.archivePath, new File('../logs/accesslog-10k.log')]
        }
        // MapReduce 设置
        // 可创建Baidu Hadoop集群,并添加应用,并执行任务
        // 可执行多个任务
        mapReduce {
            name = project.name
            imageType = 'hadoop'
            imageVersion = '0.1.0'
            autoTerminate = false
            logUri = "bos://$bucketName/logs/"
            master {
                instanceType = 'g.small'
                instanceCount = 1
            }
            slaves.create {
                instanceType = 'g.small'
                instanceCount = 2
            }
            steps.create {
                name = "$project.name-$project.version"
                actionOnFailure = 'Continue'
                mainClass = 'com.vianet.cie.hadoop.AccessLogAnalyzer'
                jar = "bos://$bucketName/$project.group/$project.version/$project.name-${project.version}.jar"
                arguments = "bos://$bucketName/$project.group/$project.version/accesslog-10k.log bos://$bucketName/out"
            }
        }
    }
}

源码地址:
https://github.com/baidu-cloud-plugin/baidu-cloud-plugin.git

插件地址:
https://plugins.gradle.org/plugin/org.rapid.develop.baidu-cloud-plugin

Using Gradle to pack your java application as a fat jar

作者:Rui 发布时间:March 4, 2016 分类:JAVA,ANDROID 浏览:401

使用Gradle 将应用程序和依赖包打包到一个JAR内

jar {
    from {
        fileTree(dir: 'libs', include: '*.jar').collect {
            it.isDirectory() ? it : zipTree(it)
        }
    }
}

Gradle 使用OSChina Maven 仓库

作者:Rui 发布时间:February 29, 2016 分类:JAVA,ANDROID 浏览:1,732

国内使用Maven官方仓库速度很慢,切换到国内镜像或者公司私服会提速很多。

修改项目根目录下的build.gradle,将所有的jcenter() 和mavenCentral() 全部替换成

allprojects {
    repositories {
        maven{ url 'http://maven.oschina.net/content/groups/public/'}
    }
}

如果项目多,可修改全局配置,将所有使用gradle的项目自动换成国内的镜像。

将下面这段Copy到名为init.gradle文件中,并保存到 USER_HOME/.gradle/文件夹下即可

allprojects{
    repositories {
        def REPOSITORY_URL = 'http://maven.oschina.net/content/groups/public'
        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
        }
    }
}

init.gradle文件其实是Gradle的初始化脚本(Initialization Scripts),也是运行时的全局配置。
更详细的介绍请参阅 http://gradle.org/docs/current/userguide/init_scripts.html

Reference


Dependency Management
Change Gradle mavenCentral URL to My repo
What is included in JCenter repository in Gradle?