我使用Android应用程序时使用的Android aar库。它与直接包含在Android项目中的aar库一起正常工作。我想将此库移动到我的内部Nexus maven存储库,以便其他开发人员也可以使用该库。
如何将aar上传到Nexus(Maven存储库)?在Web界面中没有明显的选择:
答案 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:
基本上,它添加了一个新的Gradle任务(uploadArchives)来推送你的工件。所以做一些事情:
>gradle clean build uploadArchives
答案 4 :(得分:1)
您可以使用Maven或Gradle上传或手动上传。
对于手动上传,您只需在输入中键入包值,即可获得&#39; aar&#39;并根据需要上传。
答案 5 :(得分:1)
为什么nexus包没有为@aar文件提供任何内容,但是如果你尝试将其作为jar上传,那么它不会阻止你,一切都正常工作,这没有任何意义..