zig*_*ggy 5 java jsp servlets maven
我上周在如何构建依赖模块时发布了一个问题,结果是建议我使用像Maven或Ivy这样的构建工具.我决定使用Maven来尝试实现我想做的事情.我的项目基本上构建了一个部署到Tomcat的war文件.模块本身是最终war文件的一部分.这是模块的示例结构
第1单元
customerModule
|-webapp
|-jsp
|-customer
|-findCustomer.jsp
|-addNewCustomer.jsp
|-deleteCustomer.jsp
|-src
|-com
|-mycompany
|-customer
|-FindCustomerAction.java
|-AddCustomerAction.java
|-DeleteCustomer.java
Run Code Online (Sandbox Code Playgroud)
单词数
productModule
|-webapp
|-jsp
|-product
|-productCustomer.jsp
|-addNewProduct.jsp
|-deleteProduct.jsp
|-src
|-com
|-mycompany
|-product
|-FindProductAction.java
|-AddProductAction.java
|-DeleteProduct.java
Run Code Online (Sandbox Code Playgroud)
单词数
commonModule
|-webapp
|-css
|-style.css
|-jsp
|-templates
|-coreTemplate.jsp
|-src
com
|-mycomany
|-common
|-Logger.java
|-Access.java
|-META-INF
|-MANIFEST.MF
|-context.xml
|-WEB-INF
|-lib
|-oraclejdbc.lib
|-log4j.lib
|-common.lib
|-struts-config.xml
|-tiles-def.xml
|-web.xml
Run Code Online (Sandbox Code Playgroud)
正如您可能看到的,上述内容将共同形成一个应用程序.我想做的是为每个模块最终得到一个工件.由于文件类型(jsp,css,java)的混合,我不太确定什么是合适的工件.下图显示了我想最终得到的war文件的结构.
MyApp.war
|-webapp
|-css
|-style.css
|-jsp
|-customer
|-findCustomer.jsp
|-addNewCustomer.jsp
|-deleteCustomer.jsp
|-product
|-productCustomer.jsp
|-addNewProduct.jsp
|-deleteProduct.jsp
|-templates
|-coreTemplate.jsp
|-META-INF
|-MANIFEST.MF
|-context.xml
|-WEB-INF
|-lib
|-oraclejdbc.lib
|-log4j.lib
|-common.lib
|-customerModule.jar
|-productModule.jar
|-classes
|-com
|-mycomany
|-common
|-Logger.class
|-Access.class
|-struts-config.xml
|-tiles-def.xml
|-web.xml
Run Code Online (Sandbox Code Playgroud)
几个注意事项 - commonModule中的java文件是构建的,最终在WEB-INF/classes中 - customerModule的java文件最终作为WEB-INF/lib中的jar文件 - productModule的java文件最终为WEB-INF/lib中的jar文件 - 所有jsps,css最终都在war文件的根目录中
我应该为存储库中的每个模块存储工件的最佳方法是什么?
我如何使用Maven实现这一点
我一直在调查Maven,发现可能有一个具有以下结构的多模块项目
MyApp.pom(父项目)commonModule.pom customer.pom product.pom
如果我压缩存储库中的模块,我将如何从父项目中引用它们并解压缩它们以构建最终的war文件?
假设存储库当前包含以下内容
|-productModule.v.0.1.zip
|-customerModule.v.0.1.zip
|-commonModule.v.0.1.zip
如果我重建,customerModule然后重建war文件购买构建父项目,maven是否重建存储库中的所有其他模块,即使它们没有更改?这究竟是如何工作的?
是否有一个示例项目可以演示如何实现上述目标?显示上述示例的任何链接或资源都非常有用.
首先,您的结构看起来错误,因为 war 项目的默认文件夹布局如下所示:
+-- pom.xml (war packaging)
+-- src/main/java (java Sources)
+-- src/main/webapp (jsp pages etc.)
+-- src/main/resources (language bundles etc.)
Run Code Online (Sandbox Code Playgroud)
此外,如果您希望将所有模块都放入同一个 war 文件中,但您希望将这些给定的模块分开。最好的方法是创建一个多模块构建,如下所示:
root
+-- pom.xml (parent of all)
+-- mod-war (incl. pom.xml)
+-- mod-1 (incl. pom.xml)
+-- mod-2 (incl. pom.xml)
Run Code Online (Sandbox Code Playgroud)
并在 mod-war pom 中对 mod-1 和 mod-2 进行依赖。这将导致它们被打包成一个单独的 war 文件,其中包含单独的 mod-1-VERSION.jar 等。此工件(war 文件)可以部署到适当的存储库,如果需要,该存储库本身可以用作依赖项。
您可以看一下这里作为示例。
| 归档时间: |
|
| 查看次数: |
3683 次 |
| 最近记录: |