最近做了一些项目,需要直接把github上的项目clone下来,发布到私有maven库上。
整理了一些可能需要的问题,记录一下,留着以后遇到同样问题的时候使用。
举个例子,clone下来了阿里的开源项目freeline,准备发布到私有maven上。
1、sycn不过,提示bintray.gradle文件出错。直接全部注掉
2、sycn不过,提示找不到com.android.library。原因freeline的runtime工程不是一个完整的项目。缺少一个工程gradle文件,随便拷贝一个过来,搞定。
3、sycn通过了,下一步就是发布到maven上了。首先是发布到本地maven上。
uploadArchives {
repositories.mavenDeployer {
repository(url: uri('D:/Users/xiangleiliu/.m2/repository'))
pom.packaging = 'aar'
}
}
拷贝上面的内容到Module的build.gradle文件中
这时候打开Gradle projects,应该会多了一个task。
双击运行既可以完成发布。
4、发布到私有maven上。
repositories.mavenDeployer {
name = 'mavenCentralReleaseDeployer'
repository(url: "http://maven.xxxx.com/nexus/content/repositories/releases/") {
authentication(userName: "xx", password: "xx")
}
pom.artifactId = "sdk"
pom.packaging = 'aar'
}
使用上面的内容就可以了。。
5、看下pom.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.antfortune.freeline</groupId>
<artifactId>gradle</artifactId>
<version>0.8.2.1.1</version>
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.squareup</groupId>
<artifactId>javapoet</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.github.javaparser</groupId>
<artifactId>javaparser-core</artifactId>
<version>2.4.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
上面的这些artifactId、groupId、version等等我们都可以通过
pom.artifactId这样的方式来配置。