gpt4 book ai didi

java - 多个源文件夹 : Avoid implicit compilation with Ant

转载 作者:搜寻专家 更新时间:2023-10-31 08:24:31 25 4
gpt4 key购买 nike

考虑以下项目布局(假设 A 和 B 相互依赖):

.
|-- bin1
|-- bin2
|-- src1
| `-- A.java
`-- src2
`-- B.java

编译后,我希望类驻留在各自的文件夹中,如下所示:

.
|-- bin1
| `-- A.class
|-- bin2
| `-- B.class
|-- src1
| `-- A.java
`-- src2
`-- B.java

这在命令行中非常简单:

 $ javac -implicit:none -sourcepath src1:src2 -d bin1 src1/*
$ javac -implicit:none -sourcepath src1:src2 -d bin2 src2/*

如果这样配置,Eclipse 也会这样做。但是我不知道如何用 Ant 来做。

附录:我当前的 javac 任务:

    <javac destdir="${classes.1.dir}">
<src path="${src.1.dir}" />
<src path="${src.2.dir}" />
</javac>
<javac destdir="${classes.2.dir}">
<classpath path="${classes.1.dir}" />
<src path="${src.2.dir}" />
</javac>

注意循环依赖。 第二个 任务运行良好,它只编译 src2 中的内容,因为它对另一个构建具有 classpath 依赖性。但是,第一个 任务不能采用类路径,因为还没有编译任何内容,而对于src,它当然会编译太多。

最佳答案

我遇到了同样的问题。我找到了一些非常简单的解决方案。

您只需要在javac 任务的srcdir 属性中指定几个source foulders。并且您不应指定 destdir 属性。

像这样:

    <javac srcdir="src1:src2" />

所有二进制文件(.class 文件)都将放置在与源代码相同的位置。所以类文件的结构将完全相同。然后你可以将所有 *.class 移动到单独的地方,这样它们就不会存储在源代码中。

并且没有像 Kurt Kaylor 的示例那样进行双重编译。

关于java - 多个源文件夹 : Avoid implicit compilation with Ant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4627913/

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