Java包/类库约定?

时间:2011-09-11 17:25:44

标签: java eclipse

我是一名C#开发人员,我正在搞乱Java。在C#中我通常会有我的前端项目,然后当我需要在项目中添加另一个层(即服务层等)时,我会在解决方案中添加一个类库并添加对它的引用。

Java的惯例是什么?您是否将另一个Java项目添加到工作区,然后引用该项目?或者您是否将包添加到包含前端的项目中?

更新

抱歉,我正在使用eclipse ...因此引用了'workspace'

8 个答案:

答案 0 :(得分:2)

没有真正的惯例。当你说“工作空间”时,你不是指Java,而是指开发环境(听起来像Eclipse)。有很多方法可以做到;您可以按照建议的方式进行,您可以通过Maven包含依赖项,您可以将它们组合在一个项目中等等。

选择哪个取决于您的需求,还有谁将使用单个库或已完成的项目,等等。

答案 1 :(得分:1)

如何划分源代码在很大程度上取决于项目的结构。注意一个好的代码组织是很重要的。您应该为自己的包中的常见任务或不同的应用程序层保留类。您应该注意包间依赖关系。

使用不同的“项目”(无论是Maven还是Eclipse项目)有助于确保您(您的开发人员)不违反结构边界,因为编译器会检查依赖项(一个项目引用另一个项目,如C#/ VS)。 Maven为每个项目生成构建工件(例如JAR文件)。

总而言之,我认为为每个程序模块创建新的单个项目是个好主意,以便能够明确地管理项目之间的依赖关系。

答案 2 :(得分:1)

你假设每个人都使用eclipse,似乎(你对“工作空间”的引用)。

您可以执行任何操作,但请记住,其他人可能无法为应用程序的各个组件包含“单独”项目。

您可以使用一些构建工具(ant,maven)轻松解决该问题,为各种应用程序组件构建适当的jar,如数据模型,持久性,API等。

如果你的前端是一个RIA,将它作为一个单独的项目开发可能更有意义,尽管没有必要。如果你的应用程序是某种Java驱动的UI,你仍然可以做任何你想做的事情,在这两种情况下都要确保UI组件有自己的包层次结构。

答案 3 :(得分:1)

与Java中的大多数事情不同,没有为如何拆分项目定义真正的约定。

根据我的经验,在单个项目中包含为特定业务目的服务的代码,并分离您打算在多个项目之间共享的代码或不特定于特定业务目的的代码是有意义的(例如,数据库访问,JMS库等),进入一个单独的项目。

答案 4 :(得分:1)

是的,我想我会创建一个单独的包。因此,您的用户界面代码可能位于com.mycompany.app.ui,您的服务代码位于com.mycompany.app.service,等等。但是,您希望组织课程取决于您自己。 Java本身并不关心这些类所在的包。这些包只是帮助开发人员更容易管理代码。

答案 5 :(得分:0)

如果在一个项目中开发UI和服务器层,这意味着打包并部署在同一个WAR文件中,我将为该服务创建一个新包,并根据需要添加类和接口。

如果单独部署服务层,我会将依赖项作为JAR添加到Web项目中。我所需要的只是服务的客户。

答案 6 :(得分:0)

如果您在Eclipse中工作,请按照以下步骤操作:

1)右键单击项目,然后选择“构建路径” - “配置构建路径...”

enter image description here

2)切换到Libraries选项卡,然后单击Add External JARs(如果它们已经在工作区中,则只需添加JAR)。

enter image description here

3)现在你可以手动添加相应类的导入,或者只需按Ctrl + Shift + O(Source-Organize Imports),Eclipse将为你完成这项任务。

答案 7 :(得分:0)

我建议你可以使用netbeans然后你可以创建一个java类库,当你部署你的项目时,netbeans将为你生成jar文件,并将它们放在正确的位置。我也是一个ms开发人员,希望它帮助