我有一個包含數十個XML文件的多項目構建,我的問題是您在某些XML文件中指定了完整的類名稱(例如com.myproject.CheckItem
),但沒有在任何時候檢查以確認您在構建過程中輸入的內容是否正確。您只能通過轉到使用XML的應用程序區域來查看您輸入的內容是否正確。Gradle:驗證類的列表在構建中的類路徑中
我想要做的是,在gradle build期間的某個時刻,請驗證這些XML文件中定義的類名稱是我的Classes中的一個,還是放在兩個lib文件夾中的一個jar中添加爲編譯依賴關係。
我現在在哪裏是我有一個Map<String, List<String>>
所有的鍵都是類名稱,值是包含該鍵的文件列表。
所以,它看起來像這樣:
com.myproject.CheckItem
- C:\Development\my-app\app-core\src\main\resources\META-INF\Totally.xml
- C:\Development\my-app\app-filter\src\main\resources\META-INF\Awesome.xml
com.myproject.CheckSquare
- C:\Development\my-app\app-core\src\main\resources\META-INF\FarOut.xml
我一直在擺弄周圍通宵看最好的辦法去了解這一點,最簡單的是做這樣的事情:
try {
Class.forName("com.myproject.CheckItem", false, this.getClass().getClassLoader());
// it exists on the classpath
} catch(ClassNotFoundException e) {
// it does not exist on the classpath
}
但是,我還沒有把它整合到Gradle構建過程中,這是我喜歡它的地方,最好是在我自己的Gradle插件中分離出來。
作爲一種替代方案,我考慮過做一個參數化的單元測試,因爲在單元測試中它會很容易地訪問類路徑,而且我可以做到上面的,但是希望在Gradle構建過程中做到這一點。
對此提出建議?