#git #maven #gradle
#git #maven #gradle
Вопрос:
Этот приятный маленький инструмент обещает помочь мне загружать артефакты в частное репозиторий Bitbucket.
http://synergian.github.io/wagon-git/bitbucket.html
У меня возникли проблемы с использованием этого руководства в моей сборке Gradle…
Я нашел этот короткий и ограниченный пример, https://github.com/UniconLabs/ssl-utils/blob/master/build.gradle
Наиболее неясным для меня является этот раздел о том, как подготовить settings.xml внутри моего дома maven. Должен ли я вместо этого использовать свою папку .gradle, поскольку я работаю с Gradle?
Частные репозитории Bitbucket
Действуйте так же, но добавьте базовую аутентификацию в свой Maven settings.xml (обычно находится в вашем каталоге $ MAVEN_HOME, проверьте http://maven.apache.org/settings.html для получения полного руководства).
<settings> ... <servers> <server> <id>your-repo-id</id> <username>yourbitbucketusername</username> <password>yourbitbucketpassword</password> </server> ... </servers> ... </settings>
Ответ №1:
Проще всего перейти к вашему файлу ~/.gradle/gradle.properties и добавить следующие две строки:
yourbitbucketusername = [bitbucket username]
yourbitbucketpassword = [bitbucket password]
Затем вы можете добавить следующее в свою сборку.gradle:
uploadArchives {
repositories {
mavenDeployer {
repository(url: "repo url") {
authentication(userName: yourbitbucketusername,
password: yourbitbucketpassword)
}
Ответ №2:
я заставил его работать с помощью приведенного ниже сценария, но перед этим вам нужно выполнить следующие шаги:
-
Создайте репозиторий в bitbucket.
-
Создайте ssh-ключ и добавьте его в свою учетную запись bitbucket. (не забудьте сохранить ваши ключевые файлы в папке ~/.ssh/ . (похоже, что wagon-git всегда ищет ваш ключ здесь)
-
Создайте файл gradle.properties для настройки требуемой переменной.
COMPANY = `user name or team or company` REPOSITORY_NAME = `repository name on bitbucket` ARTIFACT_PACKAGE = `com.company.package.id` ARTIFACT_VERSION = 1.0.0 ARTIFACT_NAME= `library name` ARTIFACT_PACKAGING = aar
-
Создайте файл gradle с именем «publish-bitbucket.gradle» в папке проекта. Скопируйте и вставьте в него приведенный ниже код.
apply plugin: 'maven' repositories { maven { url "https://raw.github.com/synergian/wagon-git/releases" } } configurations { deployLibrary } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) deployLibrary "ar.com.synergian:wagon-git:0.2.5" } uploadArchives { repositories.mavenDeployer { configuration = configurations.deployLibrary repository(url: 'git:master://git@bitbucket.org:' COMPANY '/' REPOSITORY_NAME '.git') pom.project { groupId = ARTIFACT_PACKAGE version = ARTIFACT_VERSION artifactId = ARTIFACT_NAME packaging ARTIFACT_PACKAGING } } }
-
Перейдите в папку модуля, откройте файл build.gradle и вставьте в него строку ниже
apply from: '../publish-bitbucket.gradle'
-
Теперь вы можете запустить задачу gradle с именем «uploadArchives», чтобы развернуть файл aar в bitbucket.
-
Для ссылки на библиотеку из android studio. Добавьте конфигурацию maven, как показано ниже, в файл проекта build.gradle.
allprojects { repositories { google() jcenter() maven { url 'https://maven.google.com/' } maven { credentials { username "bitbucket user name" password "generated personal app password" } authentication { basic(BasicAuthentication) } url "https://api.bitbucket.org/2.0/repositories/`user name or team`/`repository name`/src/master" } } }
-
В файле build.gradle модуля. Используйте приведенный ниже формат для реализации библиотеки.
implementation(group: 'com.company.app.id', name: 'module name', version: '1.0.0', ext: 'aar')
Я попытался исправить формат кода, чтобы он отображался прямо в моем ответе, но, похоже, его слишком сложно исправить, когда я вставил код gradle. Надеюсь, это поможет!
Ответ №3:
Чтобы избежать вопросов аутентификации bitbucket и возможной утечки пароля через gradle, я просто публикую в локальном репозитории git, а затем вручную отправляю коммит в bitbucket.