Публикация артефакта в удаленном репозитории maven на s3 с использованием Gradle

Я искал и пытался найти примеры для вышеупомянутого и нашел следующее:

Для проектов Android:

Проведение частного репо Maven на Amazon S3

Gradle Maven Push Project

Однако этот плагин ожидает определенных свойств Android и выдает такие ошибки, как Could not find property 'android' on task ':androidJavadocs'.

Для удаленных репозиториев через SFTP есть maven-publish,

Кроме того, кажется, что это можно сделать в Maven.

Было бы здорово, если бы кто-нибудь показал мне пример того, как это сделать.

2 ответа

У Gradle есть плагин, чтобы сделать это сейчас, однако он находится в инкубационном состоянии и еще не выпущен.

https://docs.gradle.org/current/userguide/publishing_maven.html

Я немного изменил код из вашей второй ссылки ( здесь) для проектов на основе Java. Единственные проблемные разделы находятся внизу файла, где создаются исходные файлы и javadoc-файлы, поскольку он напрямую ссылается на Android. Если вы замените окончательные задачи (строка 95 и далее) на следующие, это должно решить вашу проблему:

task sourcesJar(type: Jar) {
    classifier = 'sources'
    from sourceSets.main.allSource
}

// Makes the Javadocs
task javadocs(type: Javadoc) {
    // I set this to false here since I reference third party classes in my Javadocs 
    //   which fails the Javadoc generation, but this can be removed
    failOnError  false
    source = sourceSets.main.java.srcDirs
}

task javadocJar(type: Jar, dependsOn: javadocs) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives sourcesJar
    archives javadocJar
}
Другие вопросы по тегам