Gradle публикация, только если это релиз - PullRequest
0 голосов
/ 02 мая 2019

У меня есть два репозитория Maven, один локальный и один внешний.

В моем локальном репозитории я опубликую снимки и выпуски. На внешнем репозитории я буду публиковать только релизы.

Мой текущий код в build.gradle для публикации:

publishing {
    ...

    repositories {
        maven { // Local Nexus Repository
            ...

            def releaseRepoUrl = "...//repository/maven-releases/"
            def snapshotsRepoUrl = "...//repository/maven-snapshots/"

            url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releaseRepoUrl
        }

        maven { // external Nexus Repository (only publish if it is a release)
            ...

            def releaseRepoUrl = "...//repository/maven-releases/"

            url = version.endsWith('SNAPSHOT') ? "" : releaseRepoUrl
        }
    }
}

Проблема в том, что если URL "", возникает ошибка, что логично, потому что он не может опубликовать этот URL.

Как я могу пропустить публикацию во внешнем репозитории, если это SNAPSHOT?

1 Ответ

0 голосов
/ 02 мая 2019

Второй блок maven можно заключить в оператор if следующим образом:

publishing {
    ...

    repositories {
        maven { // Local Nexus Repository
            ...

            def releaseRepoUrl = "...//repository/maven-releases/"
            def snapshotsRepoUrl = "...//repository/maven-snapshots/"

            url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releaseRepoUrl
        }
        if (!version.endsWith('SNAPSHOT')) {
            maven { // external Nexus Repository (only publish if it is a release)
                ...

                def releaseRepoUrl = "...//repository/maven-releases/"

                url = releaseRepoUrl
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...