我是一个试图学习Java的C#人。我理解Java平台的语法和基本架构,并且自己做小型项目没有问题,但我真的希望能够下载一些开源项目来学习他人的工作。但是,我遇到了一个绊脚石,我似乎无法找到任何信息。
当我下载一个开源.NET项目时,我可以使用visual studio打开.sln文件,只需加载一切。当然,偶尔会有一个缺少的引用或其他东西,但实际上只需要很少的配置就可以了。我感觉不到Java的易用性。我现在正在使用eclipse,感觉就像每个项目一样,我必须使用“从现有源创建”创建一个全新的Eclipse项目,并且几乎没有任何编译没有重大的重新配置。对于Web项目,情况更糟,因为Eclipse似乎不支持从现有源创建Web项目。我必须从源代码创建一个标准的Java项目,然后显然修改项目文件以包含Web工具包的绑定以使其正常工作。
假设我希望以后能够为项目做出贡献,我不必对文件结构进行如此大的改动,以使我的IDE处于可行状态。我错过了什么?
答案 0 :(得分:28)
解决此问题的最佳方法是首先从等式中删除IDE。在C#中只有一个环境,因此假定存在默认IDE。在Java中,默认IDE不存在。
最后,Java是关于java源文件和支持jar的。如果你弄清楚那些是什么,你99%的回家路。然后,您可以为集合应用您最喜欢的构建系统。某些项目需要运行时环境,例如Web服务器来处理JSP文件。如果您了解基本设置(由规范指定),您可以快速设置IDE来处理它。
如果我得到一个包含java文件和支持jar的项目,我启动Eclipse,创建一个新项目,将其指向项目的基本目录,Eclipse将自动检测它找到的内容并相应地设置项目。
但项目通常附带构建环境。诀窍是找出哪一个:
如果存在build.xml文件,则使用ANT。这是一个“制造”工具。您可以在构建文件所在的目录中执行“ant”(如果安装了ANT),它将尝试编译。所有IDE(如Eclipse和NetBeans)都识别build.xml文件,并允许从IDE内部启动ant。不能保证支持罐子会出现。
如果存在pom.xml文件,则使用Maven。 Maven也是一个类似工具的工具,但强制执行更严格的构建周期。加上(这可能是它的最大优势)它会自动下载支持罐子。如果你安装了Maven,你会对它下载的内容感到惊讶......只要坐下来,它最终会成功。 IDE通常需要一个插件来支持pom.xml,但是你可以自动安装整个项目。
如果存在.project文件,它通常是Eclipse项目
如果存在nbproject目录,则它是NetBeans项目
了解构建环境/ IDE是尝试以您所知道的方式设置项目的更多工作。所以我总是试着让它在Eclipse中运行。通常,一旦您了解IDE,项目就很容易运行。
拥有多种做事方式并不总是令人愉快,但这是建立开放社区的成本。如果只有一个IDE,它会让事情变得更容易,但我更喜欢这样一个事实,即有更多的人试图找出完成任务的最佳方法。
答案 1 :(得分:3)
在某些情况下,你可能不得不做出重大改变。精心设计的构建系统在大多数平台上根本不需要配置,也许在异国平台上可能会有一些变化。但是,Java没有单一的标准构建系统;有些人使用Eclipse,有些人使用Apache Ant,有些人使用Apache Maven或Apache Maven2。如果您要从头开始创建项目,那么Maven或Ant可能是最理想的选择。如果使用NetBeans IDE,则您创建的项目将自动包含Ant构建文件(以便可以使用Ant在所有系统上构建),但会添加其他元数据,以便NetBeans IDE识别它。如果您创建Maven项目,可以直接使用Maven,也可以使用Eclipse或NetBeans等IDE,那么可以在NetBeans或Eclipse中加载相同的项目,而无需进行任何其他配置更改(尽管您可能需要为Eclipse安装一个插件)它可以识别Maven项目; NetBeans可以识别Maven项目。如果您从头开始创建项目,您可能会对Java Project Template感兴趣。如果您正在为现有项目做贡献,那么您查看/编辑项目的方式取决于所选的构建系统;如果项目已经使用Maven或Ant,那么将其与其他IDE一起加载应该相当简单,而如果项目使用特定IDE的怪癖或使用一些更奇特的构建系统,则可能更难。