【发布时间】:2019-01-30 00:49:25
【问题描述】:
我通常使用的构建工具是 Make、Ninja 或 NPM 脚本。但是......我可以在 Java 中使用什么,我可以在我的项目上使用它以获得可靠的“只需构建并运行这个”方法,它可以在 Windows 和 macOS 上运行?我可以使用 shell 脚本 - 但这些脚本在 Windows 上不起作用,所以我必须为 Windows 做批处理文件just。
另外,我知道我可以在这里使用 Make,但不幸的是,Java 不像 C++ 那样做“目标文件”——而且定义输出的去向也不是那么容易(对我来说)。
因此,拥有一个本机知道 javac 和 java 行为方式的构建工具将非常有用,尤其是因为我根本不知道它们的行为。
举个小例子,考虑一下这棵树:
.
├── [ 425] oop11.iml
└── [ 96] src
└── [ 96] de
└── [ 96] uni_marburg
└── [ 96] wise1819
└── [ 160] ue11
├── [3.7K] Card.java
├── [1023] Lambdas.java
└── [ 138] Main.java
Lambdas.java 和 Main.java 都包含一个 public static void main 方法 - 所以我需要两个目标 - 一个是 Lambdas.java,一个是 Main.java 和 Card.java。
我怎样才能做到这一点?有没有可以处理这个的构建工具?
【问题讨论】:
-
通常我会建议Ant,但由于您似乎讨厌Java,您最好创建包含
javac和java命令的bash/bat 文件。 -
Java 不像 C++ 那样做“目标文件” - Java 有
.class文件,它们大致相同。 -
@dave 那么
javac Foo.java && javac Bar.java && javac Foo.class Bar.class会起作用吗?我知道这个命令不完全正确,但我想你明白了它的要点...... -
@VGR 这并不是说我讨厌 Java——我只是完全不了解它,而且我知道我不擅长学习一门新语言——以及 Java 在模块化等方面的特定功能,它与 C++ 完全不同。我会给 Ant 一个机会,看看结果如何。 :)
-
不完全。您使用
javac从.java文件生成.class文件。下一步通常是使用jar命令将.class文件打包到.jar文件中。
标签: java build-system