java中的包与项目分离

sup*_*ass 5 java namespaces projects-and-solutions

首先,我将从C#回来(回到)Java,如果我的术语或哲学没有完全排列,那么道歉.

以下是背景:我们为网络编写了越来越多的内部支持工具.他们使用HTML5/AJAX /其他流行语作为后端,Java使用后端.这些工具使用轻量级内部框架,因此可以共享管理界面以实现安全性和其他配置.每个工具都是由一位独立的作者编写的,我希望这种趋势能够持续下去,所以我希望未来的作者能够轻松地对我们已经决定用于事物的第三方库保持"标准化".像DI,单元测试,ORM等

我们的包命名目前看起来像这样:

  • com.ourcompany.tools.framework
  • com.ourcompany.tools.apps.app1name
  • com.ourcompany.tools.apps.app2name

...等等.

所以这是我的问题:为了Maven设置,Eclipse等目的,是否应将每个应用程序(和框架)视为一个单独的项目?

随着时间的推移,我们可能会有很多应用程序出现在这里,所以看起来分离可以使依赖关系更加清晰,让人们更容易地使用单个工具.另一方面,(1)可能在多个项目中"拆分"包结构的更深部分是代码气味,(2)将它们组合在一起会使工具编写者更倾向于使用已经存在的第三方库来实现另一个工具.

FWIW,我最初的本能是将它们分开.

你说什么,Java大师?

Kev*_*old 7

我绝对会将它们分开.出于Maven的目的,确保每个应用程序/项目都具有对框架/应用程序的适当依赖性,因此当您只想构建单个应用程序时,不必构建所有内容.


Dar*_*oid 3

我将项目分开,但使用父 pom 来包含所有依赖项和其他常见属性。各个工具/项目都有一个名称和对父项目的引用,以及任何特定于项目的依赖项(如果有)。这有助于保持公共库和依赖项,因为公共库和依赖项已经全部配置完毕,但允许我专注于需要使用的代码库的特定部分。