我们有一个Java代码库,目前是一个基于Web的Netbeans项目。随着我们的组织和代码库的增长,我们应该将系统的各个独立部分划分为单独的jar。所以一个用于数据访问层的Jar库,一个用于一般的lib,一个用于专门的知识访问等。然后我们有一个单独的Web应用程序项目,可以有一个用于命令行工具应用程序,另一个网络应用程序最终等。
执行和管理此操作的建议做法是什么?是Maven吗?通过简单地创建单个项目并在其他项目的jar文件上设置一个项目的依赖性,仅仅通过Netbeans可以有效地完成这一切吗?
答案 0 :(得分:2)
我同意SteveG上面使用Maven2来帮助你模块化代码库,但是我使用Nexus作为Maven的本地存储库而不是Archiva。 Sonatype的人员也有一本关于如何使用Maven,Nexus并将其集成到IDE中的优秀(免费html / pdf)书籍。
但是要小心你决定如何对项目进行分区。仅仅为了它而过度复杂你的依赖是没有意义的。
答案 1 :(得分:0)
我会创建ant脚本来构建部分和部署。然后,您不依赖于IDE进行构建/部署。
答案 2 :(得分:0)
我肯定会说检查Maven(2)了。做这种事情非常好。您可以非常轻松地定义单个模型和版本。 Netbeans在整合方面也做得不错。
另外,我建议您设置Archiva,这将使您依赖公司内部生成的其他工件的二进制文件。这也充当代理,并将保留项目可能具有的任何外部依赖项的本地副本,以便在内部快速获取新版本。
答案 3 :(得分:0)
听起来你的代码已经达到了从WAR方法毕业并进入EAR级别的程度。
EAR只是另一个存档,其中包含所有其他JAR和WAR,它们组合在一起以创建应用程序。可以驻留在其中的四种类型的模块,Web,EJB,连接器和实用程序。大多数人只使用Web和Utilities,所以他们使用WEB-INF / lib方法。
但是,如果你开始获得很多相互依赖性,那么你创建一个EAR项目并使你的web项目成为它的孩子。每个Utility JAR只是其他模块使用的直接Java代码,也成为EAR的子代。最后,在每个项目中都应该有一个META-INF / manifest.mf文件,该文件只具有JAR / WAR所依赖的JAR的名称。
我是一个日食家伙,其中大部分都会在日食中得到照顾,但我确信netbeans具有非常相似的功能。
现在唯一的问题是你必须使用完整的Java EE服务器来部署EAR,所以我认为你不能使用Tomcat,如果你正在使用它。