openjdk:在修改jdk的代码后,如何避免完全重新编译jdk?

时间:2018-05-10 14:34:46

标签: java jvm

在openjdk8源代码中,如果我修改了某些热点源代码的位置,然后我使用make hotspot-only,它将进行增量编译。但在我修改jdk的源代码后,当我使用make jdk-only时,我收到了消息Compiling 9495 files for BUILD_JDK!当我只添加一个行代码时,我只会获得完全编译,就像System.out.println()一样。如何避免?

1 个答案:

答案 0 :(得分:1)

使用Make的.PHONY目标时会更频繁地发生这种情况。

如果您的目标是.PHONY目标,或引用.PHONY目标,那么 尝试找到一组不使用.PHONY目标而产生相同输出的规则。

.PHONY无条件地制定触发器规则的目标,当您真的不想编写大量Makefile来触发构建的必需部分时,这非常有用。虽然它们有用途(特别是在make clean模式中),但它们通常执行的工作量超出需要的范围,这是您已经确定的问题。

如果您在make处理中找到.PHONY规则,并且无法避免,则可能需要重新构建/重写Makefile以进行修复。

根据您的描述,听起来hotspot-only是真正的目标,而jdk-only要么是.PHONY目标,要么引用包含“所有内容”的.PHONY目标重建。这可能是设计或意外,但至少现在你知道为什么重建会发生。