2016-08-15 3 views
1

私はいくつかのプロパティファイル(異なる実行構成のdifferenファイル)を読み、各タスクの "ext"プロパティにプロパティobectを割り当てます。グラデル構成フェーズの変数チェックをスキップ

task provisionMongoDBCopyDockerfile(type: Copy, dependsOn: 'readTestConfiguration') { 
     from "${projectDir}/deployment/scripts/Dockerfile.mongodb" 
     into "/tmp/stand/mondodb" 
     expand(ext.stand) 
     filteringCharset = 'UTF-8' 
    } 

    task readTestConfiguration() { 
     def props = loadStandProperties('test') 
     println props 
     tasks.each { 
      it.ext.stand = props 
      println it.ext 
     } 
    } 

が、私はGradleのスクリプトを実行したときに、私はこのエラーを取得する:「(ext.stand)を展開する」と並んで「それは存在しないとして、余分な性質の延長上にプロパティ 『スタンド』を取得できません」。どうすればこの問題を解決できますか?私は "gradle.properties"にすべての設定パラメータを入れて設定から設定に変更したくありません。

答えて

1

以下を考慮してください(Gradle 2.14.1を使用)。これにより、設定段階で依存関係が効果的に設定されます。また、tasks.extに対してproject.extを使用します。 「stand-test.properties」、「GradleのはbuildProductionStand」「スタンドを読み込むを読み込む「buildTestStandのGradle」と言う - 私は別のプロパティを読み取るする必要がある場合に行うことが、何 -

def readTestConfiguration = { 
    def props = loadStandProperties('test') 
    println props 
    project.ext.stand = props 
} 

def loadStandProperties (def env) { 
    // use mock data 
    return ["foo": "bar"] 
} 

tasks.whenTaskAdded { Task task -> 
    if (task.name == "provisionMongoDBCopyDockerfile") { 
     readTestConfiguration() 
    } 
} 

task provisionMongoDBCopyDockerfile(type: Copy) { 
    from "${projectDir}/in" 
    into "${projectDir}/out" 
    expand(project.ext.stand) 
} 
+0

それは私がGradleのDAGビルでイベントを使用してのように見えます-properties.properties "? –

+0

しかし、設定フェーズでは、それは問題ではありません - それは簡単なプロパティをチェックします - 値ではありません.... –

+0

私はあなたが複数の質問をしていると信じています。私の答えは、あなたが得ていたエラーに対処しました。あなたの目標に他の障害がある場合は、別の質問を投稿することをお勧めします。 –

関連する問題