Rag*_*kla 10 java eclipse spring tomcat maven
这是一个有趣的经历,我在过去几周构建我的maven多模块项目.
当我决定使用maven进行构建生命周期管理时,我有几个理由想要选择maven.
一个.大多数开发团队都是分开的,这样每个团队都可以在项目中的单独模块上工作,比如Team-A来处理用户管理系统,Team-B来处理授权系统,Team-C来处理文档管理系统......以及等等.每个团队都有java开发人员,测试人员,UI专家等.
因此,maven项目结构应该是每个团队可以独立地在各自的模块上工作.他们必须能够编写,编译,构建,测试,部署他们的模块,而无需编译,测试属于其他团队的模块.
因此我得出结论,maven多模块项目的每个开发模块都必须代表一个功能模块

在论坛上进行了一些讨论之后,我发现人们建议我遵循分层方法,子模块必须是层次,如控制器层,服务层,dao层等.我没有注意这个建议,因为这不能解决我的团队目的致力于个人模块.对于大型项目,这种方式在开发期间每个团队的构建和部署时间增加,这确实影响了项目时间线.有时,如果项目中有10到11个模块,则构建和部署时间最多为30分钟.
但我确实注意到为每个模块保持DAO层分离的建议并不是一个好主意,因为DAO是高度精细的并且被其他模块重用.因此,一个模块对其他模块的依赖性将会变得更大.
我通过创建一个公共模块并将DAO和DOMAIN移动到公共模块找到了解决这个问题的方法,公共模块将作为每个模块的依赖继承.这似乎是一个更可行的选择.现在项目结构看起来像这样.

现在,当我构建项目并在服务器上运行webapp时,它会抱怨404,资源未找到.我发现这是因为缺少WEB-INF/classes文件夹,web-app模块中缺少src/main/java.我搜索并发现了一些链接,表明它是Eclipse中的部署程序集问题.所以我需要手动创建这些文件夹并添加部署程序集,因为maven没有这样做.
但更大的问题是
我不想这样做,即将java文件放在web-app中.我希望所有控制器都可以作为依赖项用于web-app,例如WEB-INF/lib/usermgmtsystem.jar.但那么Tomcat不会在类文件夹中寻找控制器.
我不知道该怎么办?任何建议,将不胜感激.
我想通了这个问题。控制器是表示层组件。调度程序期望在目标的 WEB-INF/classes 文件夹中找到表示层组件,而不是在 lib 中查找它。我不确定这是否仅适用于 Eclipse 中基于 Maven 的结构。最后,这些是我所做的改变
A。在 web-app 中创建了 src/main/java 源文件夹。默认情况下,它不会在 web-app 模块中生成。b. 在 src/main/java 文件夹中添加包和相应的控制器。
所以我的最终结构(我没有粘贴精确的 Eclipse 快照,这是通用视图)

| 归档时间: |
|
| 查看次数: |
2980 次 |
| 最近记录: |