Как стать автором
Обновить

Комментарии 7

Жырный жырный плюс за статью! Что интересно я сам практически написал такую же, но только про мавен. Не опубликую никак.


Вопрос один меня мучает. Про эти gpg ключи. Там же получается, что ключ никак не привязан к аккаунту на Sonatype. Важно, чтобы он просто был в открытом хранилище ключей. Вот зачем он нужен этот ключ, что там проверяется? Подлинность файлов на случай mtm атаки, так выходит? Ну так атакующий наверное может просто переподписать всё своим ключом

Спасибо) Хорогий вопрос! Судя из документации sonatype https://central.sonatype.org/publish/requirements/gpg/ , эта подпись им нужна не для шифрования, а лишь для верификации отправителя. И по секьюрности тут к sonatype вопросы. Эта подпись действительно здесь бесполезная как вы заметили. По логике, eсли уже и использовали gpg, то мне нужно было бы зашифровать и подписать, отдать sonatype публичный ключ для расшифровки, и они бы уже читали мои файлы и публиковали их.

И с помощью команды ./gradle publish мы наконец уже сможем опубликовать наш проект, но пока только в репозиторий который мы создали в Sonatype

А в централ как?

./gradlew closeAndReleaseRepository . Уже спомощью nexus плагина. В шестом разделе написал просто 2 таски сразу)

На Хабркакие-то лаги начинаются к концу статьи(( Чем больше статья тем сложнее что-то обработать. Вроде все ссылки нужные указал, если что пишите в комментариях

Спасибо за статью! Примеры в официальной документации похоже давно устарели. Приятно найти актуальное на текущий день руководство.

Небольшой апдейт. Приседания с secring.gpg-файлами не нужны, если использовать gpg-agent

signing {
    if (!version.endsWith('SNAPSHOT')) {
        useGpgCmd()
        sign publishing.publications.mavenJava
    }
}

Файл gradle.properties должен иметь примерно следующий вид:

signing.gnupg.executable=gpg
signing.gnupg.useLegacyGpg=false
signing.gnupg.keyName=<ваш ключ>
signing.gnupg.passphrase=<ваш пароль>

Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории