почему gradle publi sh выполняет последнюю задачу - PullRequest
0 голосов
/ 14 марта 2020

Ниже приведены соответствующие фрагменты build.gradle

version = '0.0.25-SNAPSHOT'
publishing {
    repositories {
        mavenLocal()
    }

    publications {
        maven(MavenPublication) {
            groupId = group
            artifactId = 'xyz-abc'
            version = version
            from components.java
        }
    }
}

task incrementSnapshotVersion {
    String jVersion = version
    int snapshotSuffixBegin = jVersion.lastIndexOf('-')
    String currentMinor = jVersion.substring(jVersion.lastIndexOf('.') + 1, snapshotSuffixBegin)
    String updatedMinor = (Integer.parseInt(currentMinor) + 1).toString()
    String major = jVersion.substring(0, jVersion.lastIndexOf(currentMinor))
    String newVersion = major + updatedMinor + "-SNAPSHOT"
    String s = buildFile.getText().replaceFirst("version = '$jVersion'", "version = '" + newVersion + "'")
    buildFile.setText(s)
}

При выполнении команды ниже /home/user/gradle-5.1.1/bin/gradle clean build также выполняется задача incrementSnapshotVersion, и версия неожиданно обновляется. Также пробовал -x incrementSnapshotVersion, но все равно версия в файле будет увеличиваться, однако при удалении incrementSnapshotVersion из build.gradle версия остается как есть.

1 Ответ

0 голосов
/ 14 марта 2020

Теперь версия будет увеличена на этапе настройки, поэтому при каждом запуске команды версия увеличивается.

Вы должны включить это поведение в действие задачи.

Таким образом, только когда вы выполните задачу с ./gradlew incrementSnapshotVersion или вы выполните задачу, которая зависит от ИЛИ будет завершена вашей задачей, версия будет увеличилось.

task incrementSnapshotVersion {
    doFirst {
        String jVersion = version
        int snapshotSuffixBegin = jVersion.lastIndexOf('-')
        String currentMinor = jVersion.substring(jVersion.lastIndexOf('.') + 1, snapshotSuffixBegin)
        String updatedMinor = (Integer.parseInt(currentMinor) + 1).toString()
        String major = jVersion.substring(0, jVersion.lastIndexOf(currentMinor))
        String newVersion = major + updatedMinor + "-SNAPSHOT"
        String s = buildFile.getText().replaceFirst("version = '$jVersion'", "version = '" + newVersion + "'")
        buildFile.setText(s)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...