信步漫谈之Maven——自定义结构打WAR包
目录
- 1 目标
- 2 程序结构
- 3 Maven 的 POM 脚本
- 4 WAR包结构
1 目标
将项目编译完成的内容和本地的文件通过自定义的目录结构打包成war包。
2 程序结构
分为四个项目,packagewar-webapp、packagewar、demo01、demo02,其中后两者是空项目,只是为了作为jar包依赖使用。
packagewar 是 pom 项目,用于执行 maven package 打包,打包完成后将在 packagewar-webapp 的 target 目录下输出 WAR 包。
packagewar-webapp 是打 WAR 包的输出项目,包含自定义的 web 目录结构如下。
packagewar-webapp
∟ src
∟ main
∟ webapp
∟ WEB-INF
∟ lib
∟ debug
∟ deploy
∟ doc
∟ README.md
∟ lib
∟ log
∟ temp
∟ web.xml
∟ index.jsp
∟ pom.xml
3 Maven 的 POM 脚本
- demo01(demo02类似)
<?xml version="1.0" encoding="UTF-8"?>
4.0.0
com.alfred.maven
maven-demo01
1.0.0-SNAPSHOT
概述:用于maven项目研究的demo
作用:可用于配合其他项目进行操作
- packagewar
<?xml version="1.0" encoding="UTF-8"?>
4.0.0
com.alfred.maven
maven-packagewar
1.0.0-SNAPSHOT
pom
概述:【Maven技术研究】打war包
目标:作为总体编译打包的 pom 项目
../com.alfred.maven.demo01
../com.alfred.maven.demo02
../com.alfred.maven.packagewar-webapp
- packagewar-webapp
<?xml version="1.0" encoding="UTF-8"?>
4.0.0
com.alfred.maven
maven-packagewar-webapp
1.0.0-SNAPSHOT
war
概述:【Maven技术研究】打war包
目标:将项目编译完成的内容和本地的文件通过自定义的目录结构打包成war包
1)demo01 -> 存放在web前台的lib/debug/deploy目录下
2)demo02 -> 存放在web前台的lib/debug/lib目录下
3)packagewar-webapp -> 打包的web项目
4)保留web项目目录结构不变,集成打包成一个war包PackageWar.war
com.alfred.maven
maven-demo01
1.0.0-SNAPSHOT
com.alfred.maven
maven-demo02
1.0.0-SNAPSHOT
org.apache.maven.plugins
maven-clean-plugin
3.0.0
auto-clean
initialize
clean
org.apache.maven.plugins
maven-dependency-plugin
2.2
copy-lib-dependencies
test-compile
copy-dependencies
${project.build.directory}/${project.artifactId}/WEB-INF/lib/debug/lib/
false
false
true
maven-demo02
copy-deploy-dependencies
test-compile
copy-dependencies
${project.build.directory}/${project.artifactId}/WEB-INF/lib/debug/deploy/
false
false
true
maven-demo01
org.apache.maven.plugins
maven-war-plugin
2.4
${project.build.directory}/${project.artifactId}
PackageWar
true
WEB-INF/lib/*.jar
4 WAR包结构
PackageWar.war
∟ META-INF
∟ WEB-INF
∟ classes
∟ lib
∟ debug
∟ deploy
∟ maven-demo01-1.0.0-SNAPSHOT.jar
∟ doc
∟ README.md
∟ lib
∟ maven-demo02-1.0.0-SNAPSHOT.jar
∟ log
∟ temp
∟ web.xml
∟ index.jsp