繁体   English   中英

Java包/类库约定?

[英]Java package / class library convention?

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

Java中的约定是什么? 您是否将另一个Java项目添加到工作空间中,然后引用该项目? 还是将一个软件包添加到包含前端的项目中?

更新

抱歉,我正在使用eclipse ...因此引用了“工作区”

没有真正的约定。 当您说“工作区”时,您指的不是Java,而是开发环境(听起来像Eclipse)。 有很多方法可以做到这一点。 您可以按照建议的方式进行操作,可以通过Maven包含依赖项,也可以将它们全部合并到一个项目中,依此类推。

选择哪种取决于您的需求,还有谁会使用单个库或已完成的项目,依此类推。

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

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

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

您似乎假设每个人都使用Eclipse(您对“工作区”的引用)。

您可以做任何您想做的事情,但是请记住,其他人可能无法为应用程序的各个组件包括“单独的”项目。

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

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

与Java中的大多数东西不同,没有关于如何拆分项目的真正约定。

以我的经验,在一个项目中包含用于特定业务目的的代码,并分离出您打算在多个项目之间共享的代码,或者非特定于特定业务目的的代码(例如,数据库访问)是有意义的,JMS库等)合并到一个单独的项目中。

是的,我想我会创建一个单独的程序包。 因此,您的UI代码可能在com.mycompany.app.ui ,服务代码在com.mycompany.app.servicecom.mycompany.app.service 。但是,要组织类由您决定。 Java本身并不关心类所在的包。这些包仅有助于使开发人员更容易管理代码。

我建议您可以使用netbeans,然后可以创建一个Java类库,当您部署项目时,netbeans将为您生成jar文件,并将它们放置在正确的位置。我也是ms developer,希望它能对您有所帮助

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

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

如果您在Eclipse中工作,请遵循以下步骤:

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

在此处输入图片说明

2)切换到“库”选项卡,然后单击“添加外部JAR”(如果已在工作区中,则单击“添加JAR”)。

在此处输入图片说明

3)现在,您可以手动添加相应类的导入,或者只需按Ctrl + Shift + O(源组织导入),Eclipse就会为您完成这项工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM