Maven私服搭建结合Gradle使用

系统环境:OSX 10.11.1
使用Nexus来搭建,下载地址:http://www.sonatype.org/nexus/go
或者访问http://www.sonatype.org/nexus/archived/
我下载的是bundle版本。
解压开来如下所示:

接下来就是通过命令行来开启服务了,进入到bin目录下,然后输入./nexus star回车就OK了。

这个时候就代表着Nexus的服务已经开启了,接下来打开浏览器输入http://127.0.0.1:8081/nexus。

然后点击Log In登录账号,默认的账号密码是admin和admin123登录之后,点击左侧的Repositories。

选中3rd party,然后点击Artifact Upload选项卡,GAV Definition选为GAV Parameters,然后勾选Auto Guess,Packageing选jar。

对于Group、Artifact和Version的意思讲解,我就举一个最简单的例子,比如Jake大神的butterknife项目,使用gradle来引用butterknife的话我们一般会在build.gradle里面添加这么一行代码

compile 'com.jakewharton:butterknife:7.0.1'

这里的com.jakewharton也就对应着Group,butterknife对应着Artifact,7.0.1也就对应着version。
接下来就是上传我们的jar包了,点击下面的Select Artifact(s) to Upload...,将我们的jar包选中即可,然后点击Add Artifact,再点击Upload Artifact(s)按钮。

这里再补充一个aar的提交和使用方式,提交步骤和jar一样,类型也选jar,然后会看到对应aar文件的pom格式,使用方法很简单,如下所示

    compile 'com.shadev:aarutil:0.1@aar'

这样我们的jar包就成功提交上去了,这时候可以切换到Browse Index选项卡,点击一下Refresh刷新下,然后就能看到刚刚上传的jar包了

ok,接下来就是Android项目里面对gradle进行的配置。
打开项目根目录下的build.gradle,添加自己的maven地址。

allprojects {
    repositories {
        jcenter()
        maven {
            url "http://localhost:8081/nexus/content/groups/public"
        }
    }
}

想要引入刚刚上传的jar的包话,就打开对应module的build.gradle,输入compile 'com.shadev:DevinBeatUtil:0.1'即可,代码整体如下

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:design:23.0.1'
    compile 'com.jakewharton:butterknife:7.0.1'//这是公网上的jar包
    compile 'com.shadev:DevinBeatUtil:0.1'//这是我们自己私服上面的jar包
    compile 'com.shadev:aarutil:0.1@aar'//这是我们自己私服上面的aar包
}

这样就简单部署完成了maven的私服,也实现了在gradle上使用私服的库。

ps:一个导出jar包的task

task deleteOldJar(type:Delete){
    delete 'release/Fuck,jar'
}

task exportJar(type:Copy){
    from('build/intermediates/bundles/release')
    into('release/')
    include('classes.jar')
    rename('classes.jar','Fuck.jar')
}

exportJar.dependsOn(deleteOldJar,build)
2015-11-26 22:2658