1

我们有一个 Java 代码库,它目前是一个基于 Web 的 Netbeans 项目。随着我们的组织和代码库的增长,显然我们应该将系统的各个独立部分划分为单独的 jar。因此,一个 Jar 库用于数据访问层,一个用于通用库,一个用于专业知识访问,等等。然后我们将有一个单独的 Web 应用程序项目,一个用于命令行工具应用程序,另一个最终的网络应用程序等。

执行和管理此操作的推荐做法是什么?是马文吗?通过简单地创建单个项目并将一个项目的依赖关系设置在其他项目的 jar 文件上,仅使用 Netbeans 就可以有效地完成这一切吗?

4

4 回答 4

2

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

不过,在决定如何划分项目时要小心。仅仅为了它而过度复杂化你的依赖是没有意义的。

于 2008-10-10T19:45:39.493 回答
0

我会创建ant脚本来构建和部署。那么您就不会依赖您的 IDE 进行构建/部署。

于 2008-10-10T18:39:11.063 回答
0

我肯定会说检查 Maven(2)。做这种事情非常好。您可以很容易地定义单个模型和版本。Netbeans 在集成方面也做得不错。

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

于 2008-10-10T18:41:29.467 回答
0

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

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

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

我是一个 eclipse 的人,大部分这些都在 eclipse 中为你处理,但我确信 netbeans 具有非常相似的功能。

现在唯一的问题是您必须使用完整的 Java EE 服务器来部署 EAR,因此如果您当前正在使用 Tomcat,我认为您不能使用 Tomcat。

于 2008-10-10T18:48:18.270 回答