2015-11-05 57 views
1

每當我向gradle.properties文件添加屬性時,文件中的註釋都會被擦除。我想保留所有評論。註釋被定義爲任何以#使用更新gradle.properties文件看起來像這樣gradle屬性文件 - 放置新屬性後如何保留註釋?

任務IM:

task updateSomeProperty << { 
    if(project.hasProperty('mynewProperty')) { 
     File gradleProperties = file("gradle.properties") 
     Properties props = new Properties() 
     props.load(new FileInputStream("gradle.properties")) 
     props.put("moldProperty",project.getProperty('mynewProperty')) 
     props.store(new FileWriter(gradleProperties),null); 
     println 'Updated old property to new property.' 
    } 

} 

,並在命令行我運行gradle updateSomeProperty -PmynewProperty=1234

一切工作和該屬性被注入到文件中,但文件中的註釋被清除。注意我在props.store中如何使用null(new FileWriter(gradleProperties),null);我在想如果我通過一個空的評論它會保持評論,但它不工作。我該怎麼做呢 ?如果我不能保留評論,有沒有辦法讓所有的評論,然後我可以把它們放回fileWriter命令: props.store(新的FileWriter(gradleProperties),MY_COMMENTS);

回答

0

不幸的是,因爲您使用的是普通的java屬性實例,所以根據Properties#store()方法,comments參數是一個新的註釋,此外它只是新保存的屬性文件的第一行的註釋。如果你想存儲預覽評論,你應該嘗試一些其他的解決方案。例如,您必須提供您自己的實現屬性,並將其用於在特性屬性文件中存儲新屬性。你可以在網上找到一些例子,比如one here。但是可以肯定的是,Gradle腳本似乎並不簡單。