java - 为多目录项目制作文件

标签 java macos makefile javac

我正在尝试为一个java项目创建一个makefile,它几乎编译了整个项目并将编译后的文件放在bin目录中。这是我的文件架构: file architecture

这是我在根目录的 makefile :

BIN=./bin/
SOURCE=./src/

all:
    cd src; make
clean:
    rm -f $(BIN)*.class

这是我在 src 目录中的 makefile :

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 命令时,出现此错误:

error message

如何从项目的根目录运行 make all 命令?

最佳答案

这个

sourcefiles = \
MessageMondial.class \
Bonjour.class

应该是

sourcefiles = \
MessageMondial.java \
Bonjour.java

但我还建议您使用 maven、ant、gradle 或 sbt 而不是 make。 Make 不是一个为构建 Java 项目而设计的工具。

关于java - 为多目录项目制作文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32491978/

相关文章:

java - 如何将属性添加到应用程序上下文

java - 在tomcat服务器中加载Jar

macos - 在Mac OS X 10.6上编译和执行莎士比亚编程语言转换器spl2c会导致警告/错误

linux - 如何在 makefile 中指定将结果发送到哪里

emacs - 如何在 Emacs 中为 Ocaml 生成和设置注释?

java - 如何让kubernetes服务处理JAVA中的多个端口?

java - 有人有过使用 JODB 进行网络应用程序的经验吗?

macos - 如何在 Mac OS X 菜单栏的右上角显示我的应用程序图标(以编程方式)

macos - 权限被拒绝 -/Library/Caches/Homebrew/Formula/nmap.brewing

makefile - 如何在 makefile 中为内核模块构建目标设置预处理器指令?