Установите все артефакты модулей в пользовательский репозиторий maven с помощью Gradle и Android Studio

У меня есть чистая Java-библиотека, которую я использую в своем Android-проекте, я пытаюсь ее настроить, поэтому, когда я запускаю «gradle install», он будет строить весь проект и устанавливать все артефакты в пользовательский локальный репозиторий, который, очевидно, является git репозиторий.

Это файл модуля gradle, проект строит отлично:

group 'com.packagenaem' def artifact = 'artifactname' version '1.0.0' apply plugin: 'java' def MAVEN_LOCAL_PATH = 'file:///some/path/to/my/repo' uploadArchives { repositories { apply plugin: 'maven' mavenInstaller { repository(url: MAVEN_LOCAL_PATH) pom.groupId = group pom.artifactId = artifact pom.version = version pom.packaging = 'jar' } } } task sourcesJar(type: Jar, dependsOn:classes) { classifier = 'sources' from sourceSets.main.allSource } task javadocJar(type: Jar, dependsOn:javadoc) { classifier = 'javadoc' from javadoc.destinationDir } artifacts { archives sourcesJar archives javadocJar } 

Ошибка, возникающая при запуске из командной строки:

 Could not find method repository() for arguments [{url=file:///some/path/to/my/repo}] on repository container 

Если я опускаю этот repository(url: MAVEN_LOCAL_PATH) строк repository(url: MAVEN_LOCAL_PATH) он очень хорошо устанавливает все артефакты в /users/$USER/.m2/repository

=== UPDATE ===

Поиграв с ним немного при выполнении следующего gradle uploadArchive , я дошел до точки, где я получил следующую ошибку:

 Failed to deploy artifacts/metadata: No connector available to access repository remote (/some/path/to/my/custom/repo) of type default using the available factories WagonRepositoryConnectorFactory 

==== РАСШИРЕНИЕ ЭТОГО ВОПРОСА BIT ====

Так что, поскольку я уже установил щедрость для этого вопроса, давайте расширим его и спросим, ​​как я могу это сделать, чтобы я написал вышеприведенный код один раз в моем файле проекта gradle, а после «gradle uploadArchives» он развернет артефакты Все проекты? В настоящее время я дублировал весь код, перекрещивая все файлы градиента сборки, которые у меня есть, и я ненавижу такое решение …

Хорошо, поэтому я потратил много времени и клеток мозга на этот …

Вместо объявления:

 repository(url: file("/some/path/to/my/custom/repo")) 

Измените его на:

 repository url: 'file://' + new File("/some/path/to/my/custom/repo").absolutePath 

Я понятия не имею, почему, но теперь каждая конфигурация, которую я пытаюсь использовать, …

Вместо mavenInstaller вы пробовали mavenDeployer ? В соответствии с этим он поддерживает то, что вы хотите сделать.

EDIT: Вы пробовали комбинировать mavenDeployer с:

 publishing { repositories { maven { url MAVEN_LOCAL_PATH } } } 
Intereting Posts