2008-10-10 73 views
1

我们有一个Java代码库,它目前是一个基于Web的Netbeans项目。随着我们的组织和代码库的增长,我们显然应该将我们系统的各个独立部分划分为单个罐子。因此,一个用于数据访问层的Jar库,一个用于常规库,一个用于专业知识访问等。然后,我们将为Web应用程序提供一个单独的项目,并且可以为一个命令行工具应用程序,另一个网页应用程序等。这是构建代码库的正确方法吗?

建议的做法和管理方法是什么?是Maven吗?只需创建单个项目并将其中一个项目的依赖项设置为其他项目的jar文件,只需Netbeans就可以有效地完成这些任务吗?

回答

0

我会创建ant脚本来构建件和部署。然后,您不依赖于您的IDE进行构建/部署。

0

我肯定会说检查Maven(2)了。这样做是非常好的。您可以非常轻松地定义各个模型和版本。 Netbeans在整合方面也做得不错。

另外我建议你设置Archiva这将让你依赖于你的公司内部产生的其他工件的二进制文件。这也充当代理,并且会保留项目可能具有的任何外部依赖项的本地副本,因此它可以很快在内部获取新版本。

0

这听起来像你的代码已经到了你从WAR方法毕业并进入EAR级别的地步。

EAR是另一个包含所有其他JAR和WAR的组合,用于创建应用程序。有四种类型的模块可以驻留在它,Web,EJB,连接器和实用程序中。大多数人只使用Web和实用程序,因此他们使用WEB-INF/lib方法。

但是,如果您开始获得大量相互依赖关系,那么您将创建一个EAR项目并使您的Web项目成为其子项目。每个实用程序JAR只是其他模块使用的直接Java代码,也会成为EAR的子代。最后,在每个项目中应该有一个META-INF/manifest.mf文件,它只有JAR/WAR所依赖的JAR的名称。

我是一个日食家伙,大部分日食都会照顾你,但我确信netbeans具有非常类似的功能。

现在唯一的问题是您必须使用完整的Java EE服务器来部署EAR,所以我不认为如果您正在使用的是Tomcat,则可以使用Tomcat。

+0

如果只是没有任何其他JEE组件的Web项目,则无需执行此操作。简单地将你的jar放在web应用lib目录中更简单,因为不需要清单更新。即使战争部署在EAR中。 – Robin 2008-10-10 19:25:31

2

我同意上面的SteveG使用Maven2来帮助您模块化代码库,但我会使用Nexus作为Maven的本地存储库而不是Archiva。 Sonatype的家伙也有一本关于如何使用Maven,Nexus并将其集成到IDE中的优秀(免费html/pdf)书籍。

不过要小心你决定分割你的项目。仅仅为了它而过分复杂化你的依赖是没有意义的。

相关问题