即使未做任何更改,我的makefile也会始终重建项目。即使未做任何更改,Java Makefile也会始终重建
我该如何解决?
我的项目结构遵循通常的bin /,src /,Makefile模式。
的Makefile:
# output directory
BIN = bin/
# input directory
SRC = src/
# java compiler
JC = javac
# compile flags
JFLAGS = -d $(BIN) -cp $(SRC)
sourcefiles = $(addprefix $(SRC), \
A.java \
B.java \
C.java)
classfiles = $(sourcefiles:.java=.class)
all: $(classfiles)
%.class: %.java
$(JC) $(JFLAGS) $<
clean:
$(RM) $(BIN)*.class
我从例子我在网上找到做此生成的文件,但我不知道我明白了一切正在做的,所以,如果我也可以得到一个解释,那将是巨大的:3
为什么使用make for Java?有一些Java构建工具(Maven和Gradle)更容易和更可靠。 – chrylis
你怎么调用'make'?如果您的调用触发了可以解释您观察到的“干净”目标。此外,'$(SRC)'不是类路径,它是源路径。你通过替换文件的后缀来定义'classfiles',但它们也应该放在不同的目录中,是吗?所以这可以解释你观察到的,因为'$(classfiles)'将永远是空的。正如@ chrylis让你知道的,“make”是这项工作的错误工具。 –