2016-09-15 19 views
3

gradle buildを実行するたびにFlyway's migrate commandが自動的に呼び出されると便利です。GradleにflywayMigrateをビルドする方法はありますか?

春のブートはフードの下でこれを行いますが、これを行うことはできますか?私は同じ方法で管理できるようにしたいと思うnon-Boot appを持っています。

私はそれがライフサイクルのフックだと思っています。 This questionは役に立ちますが、私はどのようにフライウェイプレビルドを実行しますか?

答えて

1

はいできます。いくつかの選択肢があります。どの時点でもライフサイクルに突入することができます。デフォルトではjava gradleプラグインにはいくつかの場所があります。

$ ./gradlew clean build 
:clean 
:compileJava 
:processResources UP-TO-DATE 
:classes 
:jar 
:assemble 
:compileTestJava 
:processTestResources UP-TO-DATE 
:testClasses 
:test 
:check 
:build 

あなたは関係なく、あなたは単純なプラグインを検討する必要があります何か他のものの前に何適用されませんする必要がある場合は、これらの点

それとも、のいずれかに接続することができます。

ここ

は、両方の例である:

build.gradle:

apply plugin: 'java' 

repositories { 
    jcenter() 
} 

dependencies { 
    testCompile 'junit:junit:4.12' 
} 

task runFlyAwayCommand << { 
    // process is type java.lang.Process 
    def process = "printf lifecycle hooked task".execute() 
    def processExitValue = process.waitFor() 
    def processOutput = process.text 
    project.logger.lifecycle("Flyaway{ exitValue: $processExitValue output: $processOutput }") 
} 

// compileJava could be any lifecycle task 
tasks.findByName('compileJava').dependsOn tasks.findByName('runFlyAwayCommand') 


// if you need to execute earlier you might want to create a plugin 
apply plugin: SamplePlugin 

class SamplePlugin implements Plugin<Project> { 

    @Override 
    void apply(Project project) { 
     def process = "printf plugin apply".execute() 
     def processExitValue = process.waitFor() 
     def processOutput = process.text 
     project.logger.lifecycle("Flyaway{ exitValue: $processExitValue output: $processOutput }") 
    } 
} 

出力:あなたの思慮深い答えを

$ ./gradlew clean build 
Configuration on demand is an incubating feature. 
Flyaway{ exitValue: 1 output: plugin } 
:clean 
:runFlyAwayCommand 
Flyaway{ exitValue: 1 output: lifecycle } 
:compileJava 
:processResources UP-TO-DATE 
:classes 
:jar 
:assemble 
:compileTestJava 
:processTestResources UP-TO-DATE 
:testClasses 
:test 
:check 
:build 

BUILD SUCCESSFUL 

Total time: 1.294 secs 
+0

おかげで、私はあることに行くを与えるでしょう。 – ben3000

関連する問題