首先进入Nexus官网https://help.sonatype.com/repomanager2/download/download-archives—repository-manager-oss,下载最新版本,
选择download-archives—repository-manager-oss,目前免费版最新版本是2.14.14,
点击nexus-2.14.14-01-bundle.zip下载下来
解压,有两个文件夹, nexus和 sonatype-work,接下来操作可能需要管理员权限,
win+x
打开管理窗口,cd c/xxx/nexus/bin
,首先运行 ./nexus install
,很快显示完成,然后再运行./nexus start
显示 nexus started ,ok搞定了
这个时候可以去任务管理器看下有没有wrapper-nexus进程,有说明成功了,没有再搜下其他办法
ps:这里网上还说需要改nexus下面config文件,我也改了一下,感觉如果是配置了java的环境变量就不需要改
{your path}\nexus-2.14.14-01\bin\jsw\conf\wrapper.config修改:wrapper.java.command={your path}\java\bin\java
进入http://localhost:8081/nexus/,输入用户名密码:默认账号密码为
admin/admin123
然后找到仓库repository,
只需要关注hosted(宿主仓库)类型:
我们自己的依赖仓库,目前 maven-releases 和 maven-snapshots 是 hosted 类型的仓库。我们可以上传到这两个仓库,也可以自己创建 hosted 仓库。
as新建需要的module,进行如下配置
在最外层的build.gradle配置maven打包插件
//自动化maven打包插件
classpath "com.github.dcendents:android-maven-gradle-plugin:1.3"
在module下新建gradle.properties文件,配置如下内容
GROUP_ID = online.com.testlib
ARTIFACTID =test
LIBRARY_VERSION=1.0-SNAPSHOT
SNAPSHOT_REPOSITORY_URL=http://192.168.10.124:8081/nexus/content/repositories/snapshots/
RELEASE_REPOSITORY_URL=http://192.168.10.124:8081/nexus/content/repositories/releases/
NEXUS_USERNAME=admin
NEXUS_PASSWORD=admin123
在library的build.gradle中配置脚本:
def isReleaseBuild() {
return LIBRARY_VERSION.toUpperCase().contains("SNAPSHOT") == false
}
def getRepositoryUsername() {
return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""
}
def getRepositoryPassword() {
return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""
}
def getRepositoryUrl() {
return isReleaseBuild() ? RELEASE_REPOSITORY_URL : SNAPSHOT_REPOSITORY_URL
}
在android{}里面配置
afterEvaluate { project ->
uploadArchives {
repositories {
mavenDeployer {
pom.groupId = GROUP_ID
pom.artifactId = ARTIFACTID
pom.version = LIBRARY_VERSION
repository(url: getRepositoryUrl()) {
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
}
}
}
}
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}
//解决 JavaDoc 中文注释生成失败的问题
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
options.addStringOption('charSet', 'UTF-8')
}
artifacts {
archives androidSourcesJar
archives androidJavadocsJar
}
}
同步一下工程
然后在as右上角找到gradle,找到当前lib下面的一个uploadArchives脚本命令,双击即可上传maven仓库
如何使用呢,简单
添加maven仓库
allprojects {
repositories {
google()
jcenter()
maven{
url 'http://192.168.10.xxx:8081/nexus/content/repositories/snapshots/'
}
}
}
添加依赖,构建一下即可
implementation 'online.com.testlib:test:1.0-SNAPSHOT'
这样虽然可以了,但是发现如果module里面存在kotlin代码就会出现javadoc报错
解决办法
在最外层的build文件里面加
allprojects {
tasks.withType(Javadoc).all { enabled = false }
}
参考:http://www.it1352.com/829972.html