2016-02-13 3 views
3

У меня есть Android aar library, которую я использую с Android-приложением. Он работает правильно с библиотекой aar, включенной непосредственно в проект Android. Я хотел бы переместить эту библиотеку в свой внутренний репозиторий Nexus maven, чтобы другие разработчики тоже могли использовать библиотеку.Как загрузить библиотеку aar в Nexus?

Как загрузить aar в Nexus (репозиторий Maven)? Там нет очевидной возможность сделать это в веб-интерфейсе:

Nexus web interface

ответ

5

Я использовал gradle's maven plugin для загрузки на Nexus путем изменения файла Android build.gradle.

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, используя gradlew скрипт, который предусмотрен проектом Android Studio.

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

3

Использование 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/

1

Вы можете загрузить его с помощью Maven или Gradle или вручную.

Для загрузки вручную вы можете просто ввести значение пакета на входе, чтобы оно было «aar», и загружать по своему желанию.

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 
2

для Android, мы обычно имеем два build.gradle файлы один в папке верхнего уровня, а другой в конкретном модуле:

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

В приложение/сборки. Gradle файл из клиентов этой библиотеки вы должны добавить:

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

для вас библиотека приложение/модуль/сборка.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

1

Это Безразлично «Нет никакого смысла в том, почему пакет nexus не имеет ничего для файла @aar, но если вы попытаетесь загрузить его как банку, это не будет блокировать вас и каждый предмет - работа как есть ..

Смежные вопросы