2010-05-24 36 views
22

我是一个试图学习Java的C#人。我理解Java平台的语法和基本体系结构,自己做小型项目并没有问题,但我真的很想下载一些开源项目来学习其他人的工作。但是,我遇到了一个绊脚石,我似乎无法找到任何信息。Java相当于VS解决方案文件

当我下载一个开放源代码的.NET项目时,我可以用Visual Studio打开.sln文件,并且只加载一切。当然,偶尔会有一些缺失的参考资料或其他内容,但实际上需要的配置很少。我没有感觉到Java的易用性。目前我正在使用eclipse,并且感觉每个项目都需要使用“从现有源创建”来创建全新的Eclipse项目,并且几乎没有任何编译工作没有重新配置。就Web项目而言,情况更糟,因为Eclipse似乎不支持从现有源创建Web项目。我必须从源代码创建一个标准的Java项目,然后显然修改项目文件以包含Web工具包的绑定以正常工作。

假设我希望能够稍后对项目做出贡献,我不应该对文件结构进行如此剧烈的更改才能使IDE进入可工作状态。我错过了什么?

回答

25

解决这个问题的最好方法是首先从等式中删除IDE。在C#中只有一个环境,所以假定存在默认的IDE。在Java中,缺省的IDE不存在。

最终Java是关于java源文件和支持jar的。如果你弄清楚这些是什么,那么你有99%的回家的路。然后你可以使用你最喜欢的构建系统。某些项目需要运行时环境,如Web服务器来处理JSP文件。如果你明白基本设置是什么(按照规范的规定),你可以快速设置你的IDE来处理它。

如果我得到一个带有java文件和支持jar的项目,我启动Eclipse,创建一个新项目,将其指向项目的基本目录,Eclipse将自动检测它找到的内容并相应地设置项目。

但是项目通常包含构建环境。诀窍是找出哪一个:

  • 如果存在build.xml文件,它使用的是ANT。这是一个“make”类似的工具。您可以在构建文件所在的目录中执行“ant”(如果您安装了ANT),它会尝试编译。所有的IDE都像Eclipse和NetBeans一样识别build.xml文件,并允许从IDE内部启动ant。不能保证支持的罐子会出现。

  • 如果存在pom.xml文件,则使用Maven。 Maven也是一个类似工具的工具,但执行更严格的构建周期。 Plus(这可能是它最大的优势),它会自动下载支持的jar。如果你安装了Maven,你会惊讶于下载的内容......只是坐下来,最终会结束。 IDE通常需要一个插件来支持pom.xml,但是这样你就可以自动完成整个项目的设置。

  • 如果一个项目文件存在,它通常是一个Eclipse项目

  • 如果nbproject的目录存在,它是一个NetBeans项目

开始了解构建环境/ IDE是更多的工作,试图在你知道的项目中设置一个项目。所以我总是试着让它在Eclipse中运行。通常,只要知道IDE,项目就很容易运行。

拥有多种处事方式并不总是令人愉快的,但这是开放社区的成本。如果只有一个IDE,它会让事情变得更容易,但我喜欢这样一个事实,即有更多的人试图找出完成任务的最佳方式。

+2

我喜欢你包含了什么构建系统/ IDE用于创建项目的线索。这对像我这样的新手来说非常有帮助。 – Chris 2010-05-24 05:52:16

+0

@TBee是否有可能将build.gradle添加到可能的文件列表中,这些文件代表了源代码的构建方式。你的答案真的很棒,而且随着更新的构建系统变得流行起来,它会很好。 Gradle被android studio用于我的经验的android项目,但它似乎可以用于任何事情(不是任何方式的gradle专家)。 – 2016-04-30 19:18:35

2

在某些情况下,您可能必须作出重大更改。一个设计良好的构建系统在大多数平台上完全不需要配置,并且在异国平台上可能只需进行一些更改。但是,Java没有单一的标准构建系统;有些人使用Eclipse,有些人使用Apache Ant,其他人使用Apache MavenApache 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的怪癖或使用一些更具异国情调的构建系统,则可能会更困难。