gpt4 book ai didi

java - 快速、易于维护且可并行化的方式来构建 Java 代码?

转载 作者:行者123 更新时间:2023-12-01 15:44:50 24 4
gpt4 key购买 nike

我正在开发一个构建系统,长期以来,该系统的不良实践堆积在其他不良实践上,并且我正在重写构建。涉及的语言有 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} ${<}

如果您以串行方式执行构建,则效果很好。然而,一旦依赖项混合在一起,问题就会变得更加严重。

  1. C/C++ 编译器具有用于生成依赖项的内置选项...Java 是否存在类似的工具?
  2. 是否需要使用第三方工具(如 Jikes)来生成依赖项?
  3. 通常来说,如果一个团队使用 makefile 来构建与 java 相关的任何内容,那么更典型的做法是一次性调用 java 编译器,在一个命令行中列出所有 .java 文件 -vs-每个 .class 文件有一个目标?
    • 如果这种情况更常见,这纯粹是为了简单起见还是有更深层次的原因?
    • 注意:我知道对于顺序构建来说,这将是更快的选择,但我想要一个答案来对并行构建进行实证测试

最佳答案

我们的项目中也遇到了类似的问题。我们决定通过ant构建所有java代码并从 makefile 调用 ant。

除非您有很多 JNI (c++ <----> java) 依赖项,否则这也可能适合您。

祝你好运。

关于java - 快速、易于维护且可并行化的方式来构建 Java 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7273241/

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