Похоже, что метод, описанный в официальной странице , немного устарел. Здесь я представлю современный способ.
Метаданные и подпись
Используйте плагин maven-publish
вместо плагина maven
. Нет необходимости настраивать расширение artifacts
.
Файлы Jar
Свойство classifier
для Jar
task теперь устарело . Вместо этого мы можем использовать с Javadoc Jar()
и с исходным кодом Jar()
в
java расширении
java { withJavadocJar() withSourcesJar() }
Артефакты подписи
Мы используем плагин maven-publish
, поэтому расширение signing
в нашем скрипте сборки будет выглядеть следующим образом:
ext.isReleaseVersion = !version.endsWith("SNAPSHOT") // ------------------------------------- // here 'publishing' extension will come // ------------------------------------- signing { sign publishing.publications.mavenJava } tasks.withType(Sign) { onlyIf { isReleaseVersion } }
Определение и загрузка метаданных
Вместо расширения uploadArchives
для плагина maven
настройте расширение publishing
для плагина maven-publish
.
publishing { repositories { maven { def releaseRepo = "https://oss.sonatype.org/service/local/staging/deploy/maven2/" def snapshotRepo = "https://oss.sonatype.org/content/repositories/snapshots/" url = isReleaseVersion ? releaseRepo : snapshotRepo credentials { username = project.hasProperty('ossrhUsername') ? ossrhUsername : "Unknown user" password = project.hasProperty('ossrhPassword') ? ossrhPassword : "Unknown password" } } } publications { mavenJava(MavenPublication) { pom { groupId = 'com.example' name = 'example project' description = 'Example Project to learn how to deploy to OSSRH' url = 'https://example.com/' from components.java licenses { license { name = 'The Apache License, Version 2.0' url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' } } scm { connection = 'scm:git:git@github.com:example.com/example.git' developerConnection = 'scm:git:git@github.com:example.com/example.git' url = 'https://github.com/example.com/example/' } } } } }
Развертывание
Используйте задачу publishToMavenLocal
для публикации артефактов в локальном репозитории maven.
Используйте задачу publish
для публикации артефактов в удаленных репозиториях maven. Не забудьте посетить oss.sonatype.org чтобы закрыть и освободить промежуточный репозиторий.
Оригинал: “https://dev.to/kengotoda/deploying-to-ossrh-with-gradle-in-2020-1lhi”