如何将aar库上传到Nexus?

时间:2016-02-13 17:50:38

标签: android maven android-gradle nexus aar

我使用Android应用程序时使用的Android aar库。它与直接包含在Android项目中的aar库一起正常工作。我想将此库移动到我的内部Nexus maven存储库,以便其他开发人员也可以使用该库。

如何将aar上传到Nexus(Maven存储库)?在Web界面中没有明显的选择:

Nexus web interface

6 个答案:

答案 0 :(得分:5)

我使用gradle's maven plugin通过修改Android build.gradle文件上传到Nexus。

apply plugin: 'maven'

dependencies {
    deployerJars "org.apache.maven.wagon:wagon-http:2.2"
}

uploadArchives {
    repositories.mavenDeployer {
        configuration = configurations.deployerJars
        repository(url: "https://my.example.com/content/repositories/com.example/") {
            authentication(userName: "exampleUser", password: "examplePassword")
            pom.groupId = "com.example"
            pom.artifactId = "myexample"
            pom.version = '1.0.0'
        }
    }
}

使用Android Studio项目提供的gradlew upload脚本上传:gradlew

You can also move the authentication parameters into a file that is not version controlled.

答案 1 :(得分:4)

对于Android,我们通常有两个build.gradle文件,一个位于顶级文件夹,另一个位于特定模块中:

app/
---build.gradle
---module/
------build.gradle

在此库的客户端的 app / build.gradle 文件中,您必须添加:

repositories {
    jcenter()
    maven {
            url "http://localhost:8081/repository/test-maven-repo/"
        }
}

对于您的库 app / module / build.gradle 文件:

apply plugin: 'maven'

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "http://localhost:8081/repository/test-maven-repo/") {
                authentication(userName: "admin", password: "admin123")
                pom.groupId = "com.example.test"
                pom.artifactId = "myexample.test"
                pom.version = '1.0.0'
            }
        }
    }
}

你可能只想用:

来运行它

./gradlew upload

以下是更复杂设置的一个很好的示例: http://zserge.com/blog/gradle-maven-publish.html

答案 2 :(得分:2)

使用maven deploy插件。示例命令:

mvn deploy

这假设您已经使用distributonManagement部分正确配置了pom.xml,告诉所有它需要了解您的Nexus存储库

如果您是那种不喜欢更改pom.xml的人,或者更糟糕的是,如果您的代码甚至没有pom.xml但仍然想要上传到Nexus,那么您仍然可以使用< / p>

mvn deploy:deploy-file -Durl=http://mycompany/nexus/repo/blah -Dfile=/path/to/my/foo.aar -Dpackaging=aar -DgroupId=com.mycompany -DartifactId=foo -Dversion=1.2.3

有关详细信息,请参阅maven deploy plugin doc:https://maven.apache.org/plugins/maven-deploy-plugin/

答案 3 :(得分:2)

如果您使用Gradle构建项目,这里有一个很好的教程可以将您的工件推送到Nexus:

https://medium.com/@scottyab/how-to-publish-your-open-source-library-to-maven-central-5178d9579c5#.acynm6j49

基本上,它添加了一个新的Gradle任务(uploadArchives)来推送你的工件。所以做一些事情:

>gradle clean build uploadArchives

答案 4 :(得分:1)

您可以使用Maven或Gradle上传或手动上传。

对于手动上传,您只需在输入中键入包值,即可获得&#39; aar&#39;并根据需要上传。

答案 5 :(得分:1)

为什么nexus包没有为@aar文件提供任何内容,但是如果你尝试将其作为jar上传,那么它不会阻止你,一切都正常工作,这没有任何意义..