是否有可能通過Java代碼以編程方式獲取Gradle的模塊名稱?如何以編程方式獲取Gradle模塊名稱
我需要它來訪問MODULE_NAME/build/intermediates
目錄下的模塊構建文件,但硬編碼模塊名稱是一個壞主意。
是否有可能通過Java代碼以編程方式獲取Gradle的模塊名稱?如何以編程方式獲取Gradle模塊名稱
我需要它來訪問MODULE_NAME/build/intermediates
目錄下的模塊構建文件,但硬編碼模塊名稱是一個壞主意。
您可以在構建腳本中訪問project
變量,該腳本是Project的實例。它有各種各樣的獲得者,如projectDir
或buildDir
,並且由於這是相當常見的使用它們,所以記錄在user guide中。
或者,您可以找到此路徑,如果您查找在那裏生成文件的任務的輸出。
如果你需要知道在您的測試這個位置,您可以使用系統屬性像這樣從構建腳本傳遞: test { systemProperty "buildFolder", project.buildDir.absolutePath }
BTW:https://github.com/gradle/gradle/blob/master/gradle/idea.gradle#L192有一招如何更新性質的IntelliJ的工作空間運行配置,你需要測試執行。如果您在IJ中運行JUnit測試(不委託Gradle),這可能很有用。
爲了得到當前的模塊名稱,你可以只訪問搖籃的project
對象
project.name
將返回,該模塊app
應用
參見:https://docs.gradle.org/current/userguide/writing_build_scripts.html
而我將如何使用我在Java代碼中?我需要它在單元測試亞軍,所以在build.gradle沒有解決我的問題 – tomrozb
你應該說你需要它的! 嘗試將它作爲Radim建議的Gradle構建腳本中的系統屬性傳遞給您的測試用例。然後你的測試代碼可以使用System.getProperty(「buildFolder」)訪問它。 – Jolta