Публикация артефакта в удаленном репозитории maven на s3 с использованием Gradle
Я искал и пытался найти примеры для вышеупомянутого и нашел следующее:
Для проектов Android:
Проведение частного репо Maven на Amazon S3
Однако этот плагин ожидает определенных свойств 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
}