универсал-git и Gradle

#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:

я заставил его работать с помощью приведенного ниже сценария, но перед этим вам нужно выполнить следующие шаги:

  1. Создайте репозиторий в bitbucket.

  2. Создайте ssh-ключ и добавьте его в свою учетную запись bitbucket. (не забудьте сохранить ваши ключевые файлы в папке ~/.ssh/ . (похоже, что wagon-git всегда ищет ваш ключ здесь)

  3. Создайте файл 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
      
  4. Создайте файл 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
            }
        }
    }
      
  5. Перейдите в папку модуля, откройте файл build.gradle и вставьте в него строку ниже

     apply from: '../publish-bitbucket.gradle'
      
  6. Теперь вы можете запустить задачу gradle с именем «uploadArchives», чтобы развернуть файл aar в bitbucket.

  7. Для ссылки на библиотеку из 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"
            }
        }
    }
      
  8. В файле build.gradle модуля. Используйте приведенный ниже формат для реализации библиотеки.

     implementation(group: 'com.company.app.id', name: 'module name', version: '1.0.0', ext: 'aar')
      

Я попытался исправить формат кода, чтобы он отображался прямо в моем ответе, но, похоже, его слишком сложно исправить, когда я вставил код gradle. Надеюсь, это поможет!

Ответ №3:

Чтобы избежать вопросов аутентификации bitbucket и возможной утечки пароля через gradle, я просто публикую в локальном репозитории git, а затем вручную отправляю коммит в bitbucket.