![]() |
1
8
Java项目 很少地 使用生成和生成文件。事实上,我只见过这一次在实践中使用,但这是13年前,早于Java构建工具。相反,Java项目使用两种主要的构建工具之一。 基于你的问题,我假设你没有特别的理由使用make(因为你不想编译一个只有makefile的现有项目)。 蚂蚁Ant 是一个基于XML的脚本构建工具,它在概念上与makefile有点(但不是很多)相似。一个Ant构建脚本将定义许多任务。这些任务将取决于其他任务。这些任务可以包括编译Java源文件、构建JAR和您真正喜欢的任何东西。 Ant是非常灵活的,但是您最终会一遍又一遍地(在项目之间)编写一组样板文件。没有两个中等复杂的Ant项目是相同的,依赖性可能成为一个巨大的问题。通过“依赖性”,我不是指源依赖性,而是指对第三方库的依赖性。蚂蚁还有一个工具叫做 Ivy 用于管理依赖项。 马文Maven 是另一个常见的构建工具。Maven和Ant有很大的不同,因为Maven定义了项目类型(原型),比如Web应用程序。当您为项目选择一个(或多个)原型时,它要求一个非常深的目录结构。例如:
现在有些人不喜欢这样,部分原因是有些人不喜欢别人告诉他们该做什么(imho),但也有一些原因,如遗留原因和其他因素。我个人认为这是一件好事,因为一旦你熟悉了任何Maven Web应用程序项目,你就可以转到任何其他Maven Web应用程序项目并找到解决方法。 Maven还将为您提供许多要运行的标准命令,例如编译、测试、安装等。 Maven对于依赖第三方库也很有用。您在Maven项目文件中声明这些,它们将从Internet上的存储库中检索(并在本地缓存,除非您另有设置)。 所以我的建议是使用这两种方法中的一种。如果您来自C/C++背景,但它可能不是用来生成文件的,但它不是真正的Java方式。正如我所说的,您可能有理由使用Java,如现有的项目,但对于任何新项目,您应该绝对使用Ant或Maven代替,在我看来。 |
![]() |
2
4
使用处理makefile的任何版本。make不做任何编译,它只是一个脚本系统,设计时考虑到了构建软件。它将委托Javac或其他东西来编译Java文件。 我会在你的系统上尝试这三个。 |
![]() |
3
3
有两个答案。 A1:如果您想使用makefile,您需要查看软件附带的构建文档,以确定要使用哪个版本的make。如果没有与您的平台相关的构建文档,请查看软件最初实现的平台的文档。多年来,有很多不同版本的make,每个版本都有自己的特色。 您可能会遇到的另一个问题是makefile不可移植。在运行的规则中,通常存在各种平台依赖关系,例如命令名、命令路径等。如果您试图在不同的平台上构建,这些问题可能需要您对makefile进行黑客攻击。(在C/C++世界中,有一个迷宫式的GNU工具称为AutoCAD/AutoCONF,目的是为了解决这个问题。但听起来,你只有一个普通的文件。) 总之,如果你想坚持make,按照构建文档所说的做,在没有任何相关的构建文档的情况下,尝试任何版本的make,看看会发生什么。如果存在与平台相关的问题,请准备学习“make ese”和hack makefiles。 A2:imo,一个更好的替代方法是抛弃现有的makefile,使用ant或maven创建自己的构建文件。 |
![]() |
4
1
如果您想要一个可执行JAR,不要使用makefile,只需按照以下命令提示操作:
要从控制台运行jar,请键入:
|
|
user29759326 · 如何返回递归函数中的最后一个值? 6 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 6 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 6 月前 |
![]() |
rudraraj · java中未声明最终变量 6 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 6 月前 |