为多目录项目制作文件
Make file for multi-directory project
我正在尝试为一个 java 项目创建一个 makefile,它几乎可以编译整个项目并将编译后的文件放在 bin 目录中。这是我的文件架构:
这是我在根目录下的 makefile :
BIN=./bin/
SOURCE=./src/
all:
cd src; make
clean:
rm -f $(BIN)*.class
这是我在 src 目录中的生成文件:
BIN=../bin/
sourcefiles = \
MessageMondial.class \
Bonjour.class
classfiles = $(sourcefiles:.java=.class)
all: $(classfiles)
$(BIN)%.class: /src/%.java
javac -d $(BIN) -classpath . $<
如果我进入 src 目录并 运行 make all 命令,所有内容都会被编译并按应有的方式放入 bin 目录中。
然而,当我从项目的根目录 运行 make all 命令时,我得到了这个错误:
如何从项目的根目录运行 make all 命令?
这个
sourcefiles = \
MessageMondial.class \
Bonjour.class
应该是
sourcefiles = \
MessageMondial.java \
Bonjour.java
但我也建议您使用 maven、ant、gradle 或 sbt 而不是 make
。 Make 不是专为构建 Java 个项目而设计的工具。
我正在尝试为一个 java 项目创建一个 makefile,它几乎可以编译整个项目并将编译后的文件放在 bin 目录中。这是我的文件架构:
这是我在根目录下的 makefile :
BIN=./bin/
SOURCE=./src/
all:
cd src; make
clean:
rm -f $(BIN)*.class
这是我在 src 目录中的生成文件:
BIN=../bin/
sourcefiles = \
MessageMondial.class \
Bonjour.class
classfiles = $(sourcefiles:.java=.class)
all: $(classfiles)
$(BIN)%.class: /src/%.java
javac -d $(BIN) -classpath . $<
如果我进入 src 目录并 运行 make all 命令,所有内容都会被编译并按应有的方式放入 bin 目录中。
然而,当我从项目的根目录 运行 make all 命令时,我得到了这个错误:
如何从项目的根目录运行 make all 命令?
这个
sourcefiles = \
MessageMondial.class \
Bonjour.class
应该是
sourcefiles = \
MessageMondial.java \
Bonjour.java
但我也建议您使用 maven、ant、gradle 或 sbt 而不是 make
。 Make 不是专为构建 Java 个项目而设计的工具。