gradle - gradle:如何在运行时定义多个包含调用 ant.javac?
问题描述
由于某些原因,我不使用 gradle 的 java 插件,但我ant.javac
动态调用。如何include()
基于列表构建动态 javac?
例如:
def srcToCompile=["**/File1.java","**/File2.java","**/FileN.java"];
(...)
ant.javac(
destdir: tmpDir,
srcdir: srcDir
includeantruntime:false,
failonerror: true,
fork: true,
classpath : classpath1,
debug: true
) {
include(name: srcToCompile) //<< DOESN'T WORK, I also tested srcToCompile.join(":")
}
谢谢。
编辑:'不起作用',我的意思ant.javac
是不解释 aList
或冒号分隔的字符串:没有找到源,也没有编译任何内容。ant.javac
期待类似的东西
include(name:"**/File1.java")
include(name:"**/File2.java")
include(name:"**/FileN.java")
但我想生成这个include
何时调用 gradle 的列表。
解决方案
如果您查看ant javac 文档,您会看到包含和包含都接受字符串但您正在尝试传递集合
例如:
<javac destdir="${build}"
classpath="xyz.jar"
debug="on">
<src path="${src}"/>
<src path="${src2}"/>
<include name="mypackage/p1/**"/>
<include name="mypackage/p2/**"/>
<exclude name="mypackage/p1/testpackage/**"/>
</javac>
和
<javac srcdir="${src}"
destdir="${build}"
includes="mypackage/p1/**,mypackage/p2/**"
excludes="mypackage/p1/testpackage/**"
classpath="xyz.jar"
debug="on"/>
在 Gradle 中,这将是
ant.javac(includes: srcToCompile.join(','), ...)
或者
ant.javac(
...
) {
srcToCompile.each {
include(name: it)
}
}
推荐阅读
- c++ - 为什么找不到 operator<< 重载?
- maven - Vaadin 20 入门项目在 pom.xml 中有错误
- python - 使用 Python 3 将文件一一移动到每个文件的新创建目录
- javascript - 反应Js | 仅显示 URL 中的选定值
- python - 为什么我在画布中使用 create_window 创建的框架很小?
- python - discord.py 和 Tweepy 之间如何通信?
- npm-publish - verdaccio 发布新包
- r - 如何使用 R 过滤掉地图形状文件之外的数据?
- android - 是在 kotlin 中顺序获取的锁
- java - Java 中的强制转换、解析和序列化:有什么区别?