我目前正在將我的項目的構建系統從ANT遷移到gradle。所以我對gradle很新穎我的項目具有一個插件機制,可以動態加載配置在XML文件中的jar包。每個插件都在它自己的子項目中。 XML配置的條目如下所示特定庫的篩選器gradle配置
<?xml version="1.0" encoding="UTF-8"?>
<implementation ...>
<repository>text</repository>
<classpath>library1.jar</classpath>
<classpath>library2.jar</classpath>
...
</implementation>
我添加了一個XSL轉換前綴build文件夾中的正確的lib文件夾中的每個條目,使之在我的主要項目的運行任務使用。
對於在我的項目中創建的庫,這已經可以正常工作。但是,其中一些依賴於第三方庫,例如protobuf。
現在,我通過將所有引用的jar複製到lib文件夾來解決這個問題。我的build.gradle看起來如下
dependencies {
compile group: 'com.google.protobuf', name: 'protobuf-java', version: '3.1.0'
...
compile project(':main')
}
task copyReferencedLibraries(type: Copy) {
into "$buildDir/libs"
from configurations.compile
}
jar {
dependsOn xslt
dependsOn copyReferencedLibraries
...
}
但是,這會將所有庫(包括從主項目繼承的庫)複製到lib文件夾。超過我實際需要的。
我該如何過濾這些庫到本子項目中定義的庫,或者至少手動過濾我想要複製的庫?