【问题标题】:How to recursively compile a collection of packages in Java如何递归编译Java中的包集合
【发布时间】:2014-11-16 13:57:10
【问题描述】:

假设一个 java 项目由几个包、子包等组成,所有这些都存在于一个文件夹“source”中。有没有直接的方法将“source”中的文件夹结构复制到“classes”文件夹,然后递归编译所有.java文件,将.class文件放在“classes”中的正确位置?

【问题讨论】:

  • 另外:没有“类文件”,每个 .java 文件都会有一个类文件 - 并且一个可以聚合到一个单独的 JAR 文件中

标签: java compilation packages


【解决方案1】:

对于较大的项目,建议使用Maven 或更新更快的Gradle 等构建工具。根据您的需要配置其中一个后,调用mvn buildgradle build 即可轻松完成这项工作。

如果这些工具对于您的目的来说似乎很繁重,您可以查看Ant。一个简单的蚂蚁例子:

<project default="compile">
<target name="compile">
    <mkdir dir="bin"/>
    <javac srcdir="source" destdir="bin"/>
</target>
</project>

然后从命令行运行ant。见this thread for further information

【讨论】:

  • 谢谢托拜厄斯,您的答案正是我想要的!过去我曾使用 GNU make 作为其他任务的构建工具。您认为使用 make 来操作 java 文件是否有意义,或者与您推荐的构建工具相比,它是否已经过时?再次感谢!
  • Make 是一个非常灵活的构建工具,可用于构建所有内容。当然,您可以使用 make 构建您的 java 项目,但您可以自行配置所有内容。 Gradle、Maven 和 Ant 等构建工具是专门为 Java 项目开发的,尽管它们也可以用于项目。在大多数情况下,使用这些工具会更容易,因为它们提供了特定的结构和一些预配置的任务,并且可以根据您的需要通过插件进行扩展。大多数 Java IDE 都提供对 Maven 和 Gradle 的支持,尤其是 Gradle 的文档非常棒。
  • 我明白了; make 更像是一个多用途的工具。感谢您的信息。
【解决方案2】:

【讨论】:

    猜你喜欢
    • 2014-04-28
    • 2014-06-02
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 2021-05-06
    • 2011-07-13
    • 1970-01-01
    相关资源
    最近更新 更多