maven多模块工程打包部署的方法步骤

网友投稿 1367 2023-03-26


maven多模块工程打包部署的方法步骤

一般maven多模块工程结构如下图,图中分为dao数据层和上层web层(当然还可以有service层),在进行多模块划分的时候,一般将dao层采用jar进行打包,web层进行war打包。在进行war包部署时,发现dao是以jar包形式存在于lib包目录下,如果在部署服务器上需要进行相关配置修改会比较麻烦。因此研究了下用maven进行合并打包的方法:

1.确保dao pom.xml中有以下配置

${basedir}/src/main/java

**/*.xml

**/*.properties

${basedir}/src/main/resources

2.在dao目录下执行:mvn clean install -Dmaven.test.skip=true,以生成jar包

3.在web工程pom.xml添加以下插件配置

org.apache.maven.plugins

maven-dependency-plugin

&lthttp://;id>unpack

generate-resources

unpack

com.test

dao

1.0

jar

true

./target/classes

上述插件表示将dao-1.0.jar解压至web工程的target/classes目录中(即工程编译源码目录)

4.运行web工程,即可发现dao相关配置文件及源码已合并过来。(注意,此时在默认的war包的lib中还会包含dao的jar)

若还需要对war工程进行jar打包部署,则在web工程pom.xml中添加jar打包插件即可

org.apache.maven.plugins

maven-jar-plugin

1

package

jar

./target/classes

*.properties

*.xml

web

./target/WEB-INF/lib

加入后,在web下重新执行mvn install命令,会在target/WEB-INF/lib目录下生成web.jar文件,jar中不包含properties和xml文件(去掉excludes,默认情况下会将所有文件进行打包)。

在上面情况下并没有将配置文件打包,因此需要将配置文件进行拷贝:

org.apache.maven.plugins

maven-resources-plugin

2.4.3

copy-resources

package

copy-resources

UTF-8

./target/WEB-INF/classes

./target/classes

*.properties

true

copy-web-xml

package

copy-resources

UTF-8

./target/WEB-INF

./src/main/webapp/WEB-INF

*.xml

true

&lhttp://t;/execution>

通过上面配置方式,则可将配置文件拷贝至target/WEB-INF/classes目录下

通过上述配置,对于web工程部署,还缺少所依赖的其他jar包,因此需要将jar包拷贝过来(同时去除依赖的dao):

org.apache.maven.plugins

maven-dependency-plugin

copy

install

copy-dependencies

./target/WEB-INF/lib

com.test

通过以上步骤可在target目录看到web常规工程部署结构:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java实现的猴子吃桃问题算法示例
下一篇:java实现的统计字符算法示例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~