首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用aar和源jar将Android库发布到Maven

使用aar和源jar将Android库发布到Maven
EN

Stack Overflow用户
提问于 2014-11-12 05:01:21
回答 5查看 59.7K关注 0票数 76

谁能给我一个提示,告诉我如何使用aar和源jar发布一个maven-publish项目/模块?我可以使用旧的maven插件做到这一点--但我想使用新的maven-publish插件。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-02-25 03:41:44

这是一个使用新的maven-publish插件的示例。

代码语言:javascript
复制
apply plugin: 'maven-publish'

task sourceJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier "sources"
}

publishing {
    publications {
        bar(MavenPublication) {
            groupId 'com.foo'
            artifactId 'bar'
            version '0.1'
            artifact(sourceJar)
            artifact("$buildDir/outputs/aar/bar-release.aar")
        }
    }
    repositories {
        maven {
            url "$buildDir/repo"
        }
    }
}

使用./gradlew clean build publish发布

票数 96
EN

Stack Overflow用户

发布于 2016-08-31 22:23:56

稍微调整一下dskinners,就可以生成正确的依赖项了:

代码语言:javascript
复制
apply plugin: 'maven-publish'

task sourceJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier "source"
}

publishing {
    publications {
        bar(MavenPublication) {
            groupId 'com.foo'
            artifactId 'bar'
            version '0.1'
            artifact(sourceJar)
            artifact("$buildDir/outputs/aar/bar-release.aar")
            pom.withXml {
                def dependenciesNode = asNode().appendNode('dependencies')
                //Iterate over the compile dependencies (we don't want the test ones), adding a <dependency> node for each
                configurations.compile.allDependencies.each {
                    if(it.group != null && (it.name != null || "unspecified".equals(it.name)) && it.version != null)
                    {
                        def dependencyNode = dependenciesNode.appendNode('dependency')
                        dependencyNode.appendNode('groupId', it.group)
                        dependencyNode.appendNode('artifactId', it.name)
                        dependencyNode.appendNode('version', it.version)
                    }
                }
            }
        }
    }
    repositories {
        maven {
            url "$buildDir/repo"
        }
    }
}

您可以通过定义以下内容来更改versiongroupId

代码语言:javascript
复制
version = '1.0.0'
group = 'foo.bar'
票数 31
EN

Stack Overflow用户

发布于 2017-08-05 03:39:34

如果您希望避免样板代码,因为maven-publish插件不会向pom.xml中写入依赖项

试试这个插件:android-maven-publish

代码语言:javascript
复制
publishing {
    publications {
        mavenAar(MavenPublication) {
            groupId 'com.example'
            artifactId 'mylibrary'
            version '1.0.0'
            from components.android
        }
    }

    repositories {
        maven {
            url "$buildDir/releases"
        }
    }
}
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26874498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档