maven多模块工程打包部署

一文梳理金融风控建模全流程(Python) 。借助A卡模型,银行或金融机构能够根据申请人的个人信息和历史数据,对其进行风险评估。这种评估能够帮助金融机构判断借款人是否具备偿还贷款的能力和意愿。 阅读详情

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



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

<resources>
    <resource>
        <directory>${basedir}/src/main/java</directory>
        <includes>
            <include>**/*.xml</include>
            <include>**/*.properties</include>
        </includes>
    </resource>
    <resource>
        <directory>${basedir}/src/main/resources</directory>
    </resource>
</resources>


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


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

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>unpack</id>
            <phase>generate-resources</phase>
            <goals>
                <goal>unpack</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>com.test</groupId>
                        <artifactId>dao</artifactId>
                        <version>1.0</version>
                        <type>jar</type>
                        <overWrite>true</overWrite>
                        <outputDirectory>./target/classes</outputDirectory>
                    </artifactItem>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>

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


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



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

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <executions>
        <execution>
            <id>1</id>
            <phase>package</phase>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration>
                <classesDirectory>./target/classes</classesDirectory>
                <excludes>
                    <exclude>*.properties</exclude>
                    <exclude>*.xml</exclude>
                </excludes>
                <finalName>web</finalName>
                <outputDirectory>./target/WEB-INF/lib</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>
        加入后,在web下重新执行mvn install命令,会在target/WEB-INF/lib目录下生成web.jar文件,jar中不包含properties和xml文件(去掉excludes,默认情况下会将所有文件进行打包)。

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

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.4.3</version>
    <executions>
        <execution>
            <id>copy-resources</id>
            <phase>package</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <encoding>UTF-8</encoding>
                <outputDirectory>./target/WEB-INF/classes</outputDirectory>
                <resources>
                    <resource>
                        <directory>./target/classes</directory>
                        <includes>
                            <include>*.properties</include>
                        </includes>
                        <filtering>true</filtering>
                    </resource>
                </resources>
            </configuration>
        </execution>
        <!-- 拷贝web.xml文件-->
        <execution>
            <id>copy-web-xml</id>
            <phase>package</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <encoding>UTF-8</encoding>
                <outputDirectory>./target/WEB-INF</outputDirectory>
                <resources>
                    <resource>
                        <directory>./src/main/webapp/WEB-INF</directory>
                        <includes>
                            <include>*.xml</include>
                        </includes>
                        <filtering>true</filtering>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>
      通过上面配置方式,则可将配置文件拷贝至target/WEB-INF/classes目录下


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

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy</id>
            <phase>install</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>./target/WEB-INF/lib</outputDirectory>
                <excludeGroupIds>com.test</excludeGroupIds>
            </configuration>
        </execution>
    </executions>
</plugin>


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



07 Zabbix 微信告警 Zabbix 微信告警 1.注册企业微信 企业微信注册地址:https://work.weixin.qq.com 2.进入企业微信后台管理 2.1 添加微信成员 2.2创建应用 2.3 获取四项数据 (1)AgentID (2) Secret (3) 企业ID (4)部门ID 3.Zabbix Server配置 3.1确认脚本目录 # grep alertscripts /etc/zabbix/zabbix_server.... 阅读详情

相关推荐

百度无人车ApolloAuto使用入门

1.安装原版ubuntu 14.04 http://www.ubuntu.org.cn/download/alternative-downloads 2.安装对应ubuntu 14.04的indigo版ROS http://wiki.ros.org/indigo/Installation/Ubuntu 3.安装Apollo Kernel https://github.co

ss910的博客 3万+

maven工程多模块、项目打包问题

(1)找到主类,主类就是你要运行那个作为启动类就是主类,就在主类的pom里加上如下配置(2)这个主类你依赖了其它模块那么子模块的,这个medica-auth模块的pom的build啥也不加,因为spring-boot-maven-plugin的原理就是打成可运行jar包,可运行jar包就是如图这样的,带BOOT-INF。注意这种文件要是你的子模块也打成了BOOT,那么主类启动是扫描不到的,因为springboot是扫描的com.什么什么的,和你配置的包扫描是冲突的。

qq_44795091的博客 5583

IWR6843ISK+DCA1000EVM 本人遇到的所有报错和解决方案

本文详解了初次使用DCA1000EVM和mmave studio遇到的一系列的问题以及解决方法

2301_77883976的博客 3296

【07】Maven项目多环境打包配置

(1)Web项目使用Maven进行多模块划分开发之后,面临一个问题,即如何加载不同环境的配置文件打包发布到不同的环境中?(2)不同的环境有开发环境、测试环境、线上生产环境等。(3)本文将围绕这一主题给出具体的实现方案。

青风百草 2343

特征选择(模型输入参数的分析选择)方法汇总

特征选择是模式识别和机器学习领域的重要研究课题之一。为了提高准确率, 人们往往最大限度地提取特征信息。然而, 过大的特征向量维数不仅导致计算成本的增加, 复杂运算也随之带来分类识别率的下降。因此, 通过合适的特征选择算法, 去除无关特征和冗余特征, 获得有助于分类的最优特征子集, 对提高识别性能和降低计算成本具有重要意义。 特征选择主要有两个功能: 减少特征数量、降维,使模型泛化能力更强,减少过拟合 增强对特征和特征值之间的理解 参考资料: 优快云《几种常用的特征选择方法》 知乎《机器学习中,.

David's Tweet 1万+

【S32K】S32K144入门笔记(4) Lin (Lin stack组件) 驱动超声波雷达实例

0. 引言 Lin这块是我一直没弄懂的部分。很多东西一知半解,当时感觉是硬凑了答案出来。 果然过标的时候出了问题,几个小伙伴帮忙一起刷夜也没搞定,好在标还是顺利过了,不然罪过大了。 之前做lin这块一直用的是linStack组件,这部分包含了协议栈部分,需要对lin的协议比较清楚和理解才好配置。 尤其是,图形界面配置完成后会生成一个ldf文件,这个文件很重要,所有的代码都是基于这个文件生成的,但是这个文件我确认没找到什么介绍资料,所以很多配置都是一点一点凑出来的,再实际验证的。 抓住这次写文档的机会,把当时

YoYo的桃子树 1万+

maven多个子项目如何打包?

1. 前提: maven对应多个子项目, 每个子项目都是一个单独运行的jar包 2. 项目结构: 五个 jar包; 一个common资源包 3. 思路: common 作为这五个jar的外部资源 五个jar单独导报 4: 配置 父级pom配置: 不可以加这个! 不可以加! 不可以加! <build> <plugins> <plugin> <!-- 父级....

chhnang2016的博客 1万+

CAD图纸智能搜索三大突破:图纸秒搜技术、相似度匹配与AI语义搜索

CAD图纸作为核心资产,长期面临管理难题:传统全文检索需逐张打开图纸人工查找,效率低下;相似图纸匹配依赖人工比对,误差率高;非专业人员难以通过模糊描述精准定位图纸。针对这些问题,唯杰地图推出三项智能解决方案:一是基于现代化索引引擎的​​全文搜索​​,支持秒级检索图纸内的文字、图层、块名称等,并可多条件组合查询;二是​​相似度搜索​​,通过SIFT算法和深度学习提取几何特征与拓扑结构,实现高精度匹配;三是​​AI语义搜索​​,利用大模型解析自然语言指令(如“查找半径为10的红色圆”),直接定位目标图形。

vjmap的博客 1868

SpringBoot+Maven多模块项目创建、依赖、打包可执行jar包部署测试

工程结构:父工程father子模块 dao(用于持久化数据跟数据库交互)子模块 entity(实体类)子模块 service(处理业务逻辑)子模块 web(页面交互接收、传递数据,唯一有启动类的模块)关系:web依赖 service、dao、entity service依赖 dao、entity dao依赖 entity entity谁都不依赖,独立的接下来创建子模块 工程上右键 → new → Module 选择Spring Initaializr 下一步。

qq_53985858的博客 2590

【推荐100个unity插件】unity易于使用模块化设计的天空、体积云和天气系统——Enviro 3

Enviro 3是一款功能强大的Unity天空与天气系统插件,提供动态天空、体积云、天气模拟等丰富功能。安装时需将预制体拖入场景并配置主相机,URP支持需激活深度纹理和添加渲染特性。模块化设计允许自由添加/移除时间、光照、雾效等模块,并通过API控制参数。推荐配合色调映射(如ACES模式)获得最佳视觉效果。插件支持季节、温湿度模拟及闪电风暴等特效,适用于需要逼真环境渲染的Unity项目。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2092

YOLO26优化:FPN涨点&轻量化篇 |多级特征融合金字塔(HS-FPN),助力小目标检测

高层筛选特征金字塔网络(HS-FPN),能够刷选出大小目标,增强模型表达不同尺度特征的能力,助力小目标检测

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 328

java 基于maven多模块合并打包部署

记录基于maven构建的spring boot多模块项目,整合打包到一个目录的xml配置项

nisemono_ct的博客 3543

2026年复旦微电数字IC笔试试卷带答案解析

摘要: 本文为复旦微电子MCU/SOC岗位笔试模拟题,涵盖单片机架构、数字电路、存储技术等核心知识点。内容包括: 单选题(30分):考察Cortex-M中断机制、时序分析(建立/保持时间)、逻辑化简、跨时钟域设计(格雷码应用)、存储器特性(NAND Flash操作单元)等; 波形分析(15分):聚焦D触发器行为、时钟分频、建立时间违例判断及跨时钟域同步; 多选题(25分):涉及亚稳态成因与处理、异步FIFO设计要点、MCU低功耗策略、NAND Flash特性及复旦微电市场地位; 简答题(20分):解析建立/

Open 342

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

本篇文章主要介绍了maven多模块工程打包部署的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 一般maven多模块工程结构如下图,图中分为dao数据层和上层web层(当然还可以有service层),在进行多模块划分的时候,一般将dao层采用jar进行打包,web层进行war打包。在进行war包部署时,发现dao是以jar包形式存在于lib包目录下,如果在部署服务器上需要进行相关配置修改会比较麻烦。因此研究了下用maven进行合并打包的方法: 1.确保da.

lisheng19870305的专栏 7112

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【maven多模块工程打包部署】

【maven多模块工程打包部署】 一般maven多模块工程结构如下图,图中分为dao数据层和上层web层(当然还可以有service层),在进行多模块划分的时候,一般将dao层采用jar进行打包,web层进行war打包。 在进行war包部署时,发现dao是以jar包形式存在于lib包目录下,dao里引用的配置文件也都在自己的jar文件里, 如果部署服务器时,web层会引用不到dao里的配置文件。因此研究了下用maven进行合并打包的方法: [](javascript:void(0)???? project

dieqiansuo的博客 1213

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

java如何打包工程_maven多模块工程打包部署的方法步骤

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

weixin_32277761的博客 1566

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

maven 分批打包_maven多模块工程打包部署

一般maven多模块工程结构如下图,图中分为dao数据层和上层web层(当然还可以有service层),在进行多模块划分的时候,一般将dao层采用jar进行打包,web层进行war打包。在进行war包部署时,发现dao是以jar包形式存在于lib包目录下,dao里引用的配置文件也都在自己的jar文件里,如果部署服务器时,web层会引用不到dao里的配置文件。因此研究了下用maven进行合并打包的方...

weixin_39682673的博客 284

eclipse打包war_【maven多模块工程打包部署】

一般maven多模块工程结构如下图,图中分为dao数据层和上层web层(当然还可以有service层),在进行多模块划分的时候,一般将dao层采用jar进行打包,web层进行war打包。在进行war包部署时,发现dao是以jar包形式存在于lib包目录下,dao里引用的配置文件也都在自己的jar文件里,如果部署服务器时,web层会引用不到dao里的配置文件。因此研究了下用maven进行合...

weixin_30989583的博客 389

【经验贴】全网最详细——基于Maven的多模块工程打包部署到云服务器(SSM框架,Springboot绕道)

作为一名资深(fu xiu)的程序猿来说,一直不想向IDEA低头可能是我对MyEclipse最大的尊重。最近利用SSM框架搭建了一个项目后台。但是由于开发人员并不能处于同一个局域网中,于是将后台需要部署到公网服务器中。但是与普通的javaweb项目不同的是该项目是一个基于maven的多模块工程。其实刚开始笔者一直在担心不知如何部署,在网上搜到的资料也是零星半点。通过网上的一些思路,加上自己半天的摸索,终于将后台成功部署到服务器上。下面就具体讲解一下如何部署maven多模块工程到公网服务器上。PS:笔者服务器

qq_37036915的博客 2350

SpringBoot3多模块工程实战:从Maven配置到打包部署

在Java后端开发中,Maven作为主流构建工具,通过清晰的模块划分与依赖管理,能够有效解决单体应用日益膨胀带来的编译、测试与协作难题。SpringBoot3基于JDK17,为多模块工程提供了完善的自动配置与打包支持。理解父POM与dependencyManagement机制,可以统一版本管控,避免依赖冲突;合理划分common、system、web等模块,则能提升代码可维护性与构建效率。无论是团队协作还是独立部署,多模块结构都能让项目在微服务化或模块化演进中更从容。本文从环境配置、工程搭建到插件使用与常见

weixin_32451529的博客 113

Spring Boot 多模块项目实践(附打包方法)

点击上方“Java基基”,选择“设为星标”做积极的人,而不是积极废人!源码精品专栏原创 | Java 2020超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析...

weixin_44421461的博客 574

Spring Boot 多模块项目实践(附打包方法) 侵删

序言: 比起传统复杂的单体工程,使用Maven的多模块配置,可以帮助项目划分模块,鼓励重用,防止POM变得过于庞大,方便某个模块的构建,而不用每次都构建整个项目,并且使得针对某个模块的特殊控制更为方便。 接下来,本文将重点阐述SpringBoot在Maven环境的多模块构建过程。 本项目传送门: https://github.com/yizhiwazi/springboot-socks/tree/master/springboot-integration 一、创建聚合父工程 1.首先使用 S

心神沫沫的收藏 170

SpringBoot 多模块项目实践(附打包方法)

来源 序言: 比起传统复杂的单体工程,使用Maven的多模块配置,可以帮助项目划分模块,鼓励重用,防止POM变得过于庞大,方便某个模块的构建,而不用每次都构建整个项目,并且使得针对某个模块的特殊控制更为方便。 接下来,本文将重点阐述SpringBoot在Maven环境的多模块构建过程。 本项目传送门: https://github.com/yizhiwazi/springboot-so...

qq_33471815的博客 200

SpringBoot多模块项目实践(Multi-Module)

序言: 比起传统复杂的单体工程,使用Maven的多模块配置,可以帮助项目划分模块,鼓励重用,防止POM变得过于庞大,方便某个模块的构建,而不用每次都构建整个项目,并且使得针对某个模块的特殊控制更为方便。接下来,本文将重点阐述SpringBoot在Maven环境的多模块构建过程。本项目传送门:SpringBoot-Integration 一、创建聚合父工程 1.首先使用Spri...

u011277123的博客 1062

maven 打包父工程_SpringBoot 多模块项目实践(附打包方法)

一、创建聚合父工程1.首先使用 Spring Initializr 来快速创建好一个Maven工程。然后删除无关的文件,只需保留pom.xml 文件。然后在 pom.xml 里面声明该父工程包含的子模块。(其它信息就不逐一讲述了,诸如继承SpringBoot官方父工程以及统一依赖管理 请查看下面的注释说明)xsi:schemaLocation="http://maven.apache.org/PO...

weixin_39553458的博客 2487

idea+springboot+mybatis plus+maven多模块搭建,运行,打包详细流程(并说明其中的坑)

背景 由于springboot的便捷,目前基本上都是使用springboot进行开发,那遇到比较大型的项目又会需要使用maven的多模块功能,今天就来讲下这两者怎么结合使用 1. 项目结构(源码我会放在github上,后面会给出地址) 2.搭建父工程 点击idea上的file->new->project ,然后选择maven项目,除了选下jdk是否正确,其他都不用选,直接n...

weixin_38312502的博客 3217
上一篇: 具有buffer功能的RandomAccessFile
下一篇: JDK7文件处理
xb_smart
博客等级 码龄16年 124粉丝 74原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值