700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 使用gradle发布文件到maven仓库

使用gradle发布文件到maven仓库

时间:2022-12-03 14:22:37

相关推荐

使用gradle发布文件到maven仓库

使用gradle构建发布脚本,即可快速方便地发布文件到maven仓库。有2种插件可以选择,一种maven,一种maven-publish。

使用maven插件

maven插件内置了一个方法uploadArchives,这个方法会将当前项目编译打包并发布:

apply plugin: 'maven'uploadArchives {repositories {mavenDeployer {// repository(url: "/repository/apcos-snapshot/") {//authentication(userName: "xxxx", password: "xxxx")// }repository(url: "file://localhost/F:/Studying/repo/")pom.project {groupId = "com.xter.support"artifactId = "support"version = "0.7"packaging 'aar'developers {developer {id 'xter'name 'Liang'timezone 'Asia/Shanghai'}}description 'Some Utils of XTER'}}}}

按照官方文档描述:

To add additional content to the POM, the pom.project builder can be used. With this builder, any

element listed in the Maven POM reference can be added.

pom.project节点中可以添加任何符合Maven POM规范的字段。

如果想将文档注释源码一起发布的话,可以同级添加artifacts节点说明需要发布的文档:

task javadoc(type: Javadoc) {failOnError = falsesource = android.sourceSets.main.java.srcDirsclasspath += project.files(android.getBootClasspath().join(File.pathSeparator))options.addStringOption('encoding','UTF-8')}task javadocJar(type: Jar, dependsOn: javadoc) {classifier = 'javadoc'from javadoc.destinationDir}task sourceJar(type: Jar) {classifier = 'sources'from android.sourceSets.main.java.srcDirs}artifacts {archives sourceJararchives javadocJar}

上述gradle任务可在IDE中gradle工具栏中找到:

双击执行后,即可在相应位置找到发布的文件了。

这里是发布到F盘目录下了,所以去F盘对应目录下即可找到:

在support-0.7.pom中即可看到一些发布的具体描述信息:

<?xml version="1.0" encoding="UTF-8"?><project xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd" xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><groupId>com.xter.support</groupId><artifactId>support</artifactId><version>0.7</version><packaging>aar</packaging><description>Some Utils of XTER</description><developers><developer><id>xter</id><name>Liang</name><timezone>Asia/Shanghai</timezone></developer></developers><dependencies><dependency><groupId>com.android.support</groupId><artifactId>appcompat-v7</artifactId><version>26.1.0</version><scope>compile</scope></dependency><dependency><groupId>com.android.support</groupId><artifactId>design</artifactId><version>26.1.0</version><scope>compile</scope></dependency></dependencies></project>

使用maven-publish插件

maven-publish插件同样内置一个方法,名为publishing,通过配置此方法,可以发布文件:

apply plugin: 'maven-publish'publishing {publications {support(MavenPublication) {artifact sourceJarartifact javadocJarartifact 'build/outputs/aar/support-release.aar'groupId 'com.xter.support'artifactId 'support'version '0.7'pom.withXml {asNode().appendNode('description', 'Some Utils of XTER')def developer = asNode().appendNode('developers').appendNode('developer')developer.appendNode('id','xter')developer.appendNode('name','Liang')developer.appendNode('timezone','Asia/Shanghai')}}}repositories {maven {// credentials {//username "xxxxx"//password "xxxxx"// }// url "/repository/apcos-snapshot/"url "file://F:/Studying/repo/"}}}

这里是上传了本地aar文件及其文档,效果和上一种方法等同。只不过由于这里用的gradle版本较低,只能使用pom.withXml来添加pom更多信息,还是有所不便,根据官方例子是同样可以依闭包形式快速添加节点的。

此时官方gradle最新版本为6.0.1。

完成后同样是执行对应gradle任务即可完成发布。(这里截的另外的项目图,正确的gradle任务应该叫publishSupportPublicationToMavenRepository)

远程依赖

最后远程依赖不必多说,先在根节点的build.gradle中添加对应仓库:

allprojects {repositories {// maven { url '/repository/apcos-snapshot/'}maven {url 'file://F:/Studying/repo/'} }}

然后在需要的module引用:

dependencies {implementation 'com.xter.support:support:0.7'}

至此就可以正常使用了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。