gpt4 book ai didi

Ant:在 javac 任务中使用文件集

转载 作者:行者123 更新时间:2023-12-04 03:02:33 24 4
gpt4 key购买 nike

我想使用 FileSet 来准确指示我想用 Javac 任务编译哪些文件。我不想要任何隐含的行为。然而,我在这方面的尝试失败了。这是我到目前为止所得到的:

包含我所有源文件的 FileSet。

<fileset id="srcfiles" dir="${srcdir}">
<include name="**/*.java"/>
</fileset>

以及试图将其传递给 javac 的目标。
<target name="build">
<javac srcdir=".">
<fileset refid="srcfiles"/>
</javac>
</target>

这给了我这个错误: javac doesn't support the nested "fileset" element.
阅读 Ant 文档后,我尝试从 fileset 更改最里面的标签。至 sourcepath .这在文件被编译的意义上有效,但它仍然出错: srcfiles doesn't denote a path .我认为源代码只是由于隐含规则而编译的。

如何明确告诉 javac 我要编译哪些单个文件?或者这根本不是 Ant 应该如何工作?我来自 C++ 背景,其中识别源文件是构建过程的重要组成部分。但是,考虑到 Java 的文件命名和目录结构要求,可能隐含的 **/*.java模式规则涵盖所有用例。

最佳答案

ant manual for javac说:

If you wish to compile only files explicitly specified and disable javac's default searching mechanism then you can unset the sourcepath attribute:


<javac sourcepath="" srcdir="${src}"
destdir="${build}" >
<include name="**/*.java"/>
<exclude name="**/Example.java"/>
</javac>

不过,我认为这不是一个好主意。在设计良好的项目中,应该编译给定目录(或一组目录)中的所有文件。不应该编译的文件根本不应该在那里,或者应该在一个单独的目录中。

关于Ant:在 javac 任务中使用文件集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7779078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com