如何将 aar 库上传到 Nexus?
How do I upload an aar library to Nexus?
我有一个 Android aar 库,用于 Android 应用程序。它与直接包含在 Android 项目中的 aar 库一起正常工作。我想将该库移至我的内部 Nexus maven 存储库,以便其他开发人员也可以使用该库。
如何将 aar 上传到 Nexus(Maven 存储库)?在 Web 界面中没有明显的选项可以这样做:
使用 maven 部署插件。示例命令:
mvn deploy
这假设您已经正确配置了 pom.xml 和 distributonManagement 部分,告诉它需要知道的关于您的 Nexus 存储库的所有信息
如果您是那种不喜欢更改 pom.xml 的人,或者更糟的是如果您的代码甚至没有 pom.xml 但您仍然想上传到 Nexus,那么您仍然可以使用
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 部署插件文档:https://maven.apache.org/plugins/maven-deploy-plugin/
您可以使用 Maven 或 Gradle 或手动上传。
对于手动上传,您只需在输入中输入包值 'aar' 并根据需要上传。
如果您使用 Gradle 构建项目,这里有一个很好的教程可以将您的工件推送到 Nexus:
基本上,它添加了一个新的 Gradle 任务 (uploadArchives) 来推送您的工件。所以做这样的事情:
>gradle clean build uploadArchives
我使用 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'
}
}
}
要上传:gradlew upload
,使用 Android Studio 项目提供的 gradlew
脚本。
You can also move the authentication parameters into a file that is not version controlled.
对于 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
Link转官方文档:
Maven Publish Plugin.
为什么 nexus 包对@aar 文件没有任何意义,但如果你尝试将它作为 jar 文件上传,那么它不会阻止你,一切都按原样工作..
我有一个 Android aar 库,用于 Android 应用程序。它与直接包含在 Android 项目中的 aar 库一起正常工作。我想将该库移至我的内部 Nexus maven 存储库,以便其他开发人员也可以使用该库。
如何将 aar 上传到 Nexus(Maven 存储库)?在 Web 界面中没有明显的选项可以这样做:
使用 maven 部署插件。示例命令:
mvn deploy
这假设您已经正确配置了 pom.xml 和 distributonManagement 部分,告诉它需要知道的关于您的 Nexus 存储库的所有信息
如果您是那种不喜欢更改 pom.xml 的人,或者更糟的是如果您的代码甚至没有 pom.xml 但您仍然想上传到 Nexus,那么您仍然可以使用
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 部署插件文档:https://maven.apache.org/plugins/maven-deploy-plugin/
您可以使用 Maven 或 Gradle 或手动上传。
对于手动上传,您只需在输入中输入包值 'aar' 并根据需要上传。
如果您使用 Gradle 构建项目,这里有一个很好的教程可以将您的工件推送到 Nexus:
基本上,它添加了一个新的 Gradle 任务 (uploadArchives) 来推送您的工件。所以做这样的事情:
>gradle clean build uploadArchives
我使用 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'
}
}
}
要上传:gradlew upload
,使用 Android Studio 项目提供的 gradlew
脚本。
You can also move the authentication parameters into a file that is not version controlled.
对于 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
Link转官方文档: Maven Publish Plugin.
为什么 nexus 包对@aar 文件没有任何意义,但如果你尝试将它作为 jar 文件上传,那么它不会阻止你,一切都按原样工作..