0

プロパティ ファイルを読み取り、特定のフィールドを更新するタスクを定義しました。「ビルド」中ではなく、「リリース」を実行したときにのみ実行したい。

私はリリースのためにこのgradle-releaseプラグインを使用しています: https://github.com/researchgate/gradle-release

このプラグインは、リリースごとに gradle.properties ファイルのバージョンを次のバージョンに更新します。現在のバージョン番号も保持する必要があるため、このメソッドを作成しました。

ただし、ビルドを行うたびにこのタスクが実行されます。私はそれをメソッドに変更しようとし、「リリース」中にのみ実行されると思われる「uploadArchives」内でメソッドを呼び出しました。それでも成果なし。ビルドごとに実行し続けます!

「ビルド」から除外して、リリースの場合にのみ呼び出すにはどうすればよいですか?

タスクといくつかのコード スニペットを次に示します。

task restoreCurrentVersion {
    try {
        String key = 'currentVersion'
        File propertiesFile = project(':commons').file("gradle.properties")
        String currentVersion = project(':commons').version
        this.ant.replaceregexp(file: propertiesFile, byline: true) {
            regexp(pattern: "^(\\s*)$key(\\s*)=(\\s*).+")
            substitution(expression: "\\1$key\\2=\\3$currentVersion")
        }
    } catch (BuildException be) {
        throw new GradleException('Unable to write version property.', be)
    }
}

uploadArchives {
    repositories.mavenDeployer {
        repository(url: 'file://Users/my.home/.m2/repository/')
    }
 //   restoreCurrentVersion()   //Uncommenting this makes the method (when converted the above task to a method) to execute always
}

createReleaseTag.dependsOn uploadArchives    
ext.'release.useAutomaticVersion' = "true"
4

1 に答える 1