【发布时间】:2023-03-05 05:39:01
【问题描述】:
我目前正准备将我的项目的构建系统从 ANT 迁移到 gradle。所以我对 gradle 很陌生 我的项目具有一个插件机制,可以动态加载在 XML 文件中配置的 jar。每个插件都在其自己的子项目中。 XML 配置的条目如下所示
<?xml version="1.0" encoding="UTF-8"?>
<implementation ...>
<repository>text</repository>
<classpath>library1.jar</classpath>
<classpath>library2.jar</classpath>
...
</implementation>
我添加了一个 XSL 转换,以在构建文件夹中为每个条目添加正确的 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 文件夹。比我实际需要的多。
如何将库过滤到此子项目中定义的库,或者至少手动过滤我想要复制的库?
【问题讨论】:
标签: java gradle jar configuration build.gradle