【发布时间】:2011-09-01 16:17:52
【问题描述】:
我正在开发一个构建系统,该系统的不良做法长期与其他不良做法相叠加,并且我正在重新编写构建。涉及的语言是 C/C++、Fortran、Ada 和 Java,目前我坚持使用 GNU 风格的 makefile——尽管我们正在考虑其他替代方案,例如 SCons。
话虽如此,我正在寻找一些具体的建议——而不是“使用不同的构建系统”等形式的建议。
无论谁编写了我现在正在查看的特定 makefile,他都计划按顺序构建如下所示的 java 代码:
LIST_OF_JAVA_FILES = file1.java
LIST_OF_JAVA_FILES += file2.java
LIST_OF_JAVA_FILES += file3.java
...
LIST_OF_JAVA_FILES += fileN.java
all: ${LIST_OF_JAVA_FILES}
${LIST_OF_JAVA_FILES} : %.class : %.java
${JAVAC} ${CLASSPATH} ${<}
如果您执行串行构建,则可以正常工作。但是,一旦依赖项混入其中,问题就会变得更加严重。
- C/C++ 编译器具有用于生成依赖项的内置选项...Java 是否存在类似的工具?
- 是否需要使用第三方工具(如 Jikes)来生成依赖项?
- 通常来说,如果一个团队使用 makefile 来构建任何与 java 相关的东西,是否更典型的是调用 java 编译器在一个命令行中列出所有
.java文件 -vs- 每个 @987654323 有一个目标@ 文件?- 如果这种情况更常见,这是为了简单起见还是有更深层次的原因?
- 注意:我知道对于顺序构建这将是更快的选择,但我想要一个答案来对并行构建进行经验测试
【问题讨论】:
标签: java makefile parallel-builds