java两个maven工程依赖,Java开发小技巧:Maven多工程依赖项目

原标题:Java开发小技巧:Maven多工程依赖项目

dd93cb36fde9427df2d0741b2174663d.png

需求分析

首先来看一下封面图,我们要实现的效果是:

1.多个项目共享一个项目的类和方法等通用内容

2.每个子项目单独导入所需依赖,以及各自填充父项目配置文件中的占位符

3.子项目按指定目录结构进行打包

4.所有子项目集成打包到一个统一的目录,共享依赖包和配置文件等内容

5.打包后目录结构:

bin:存放脚本文件,用来设置环境变量,执行相应的jar包

lib:依赖、项目jar包

etc:配置文件

……

好啦,目标明确的,接下来要进行具体开发实现了

实现打包配置

在上一篇文章中已经创建好了一个自定义的Maven依赖,相当于一个父项目,接下来我们新建一个子项目,命名为project-one,pom.xml文件与父项目基本相同,所有依赖包都必须单独引入,不同的是多了对父项目的依赖:

a5e0ca138c440c5be6a55c91a6087e7f.png

以及Maven插件maven-assembly-plugin的引入,用来实现依赖的打包以及打包后的目录结构:

95c9da72b62abd99ff992382ca46bfdb.png

目录结构配置位于项目根目录下package.xml配置文件中:

1e88ff4e3d0bf2be3bdda0e40f095cc4.png

以上就实现了项目打包的配置工作,实现流程图中最后的项目结构,打包结果为zip文件

填充配置文件占位符

之前我们在父项目的spring上下文中定义了一个数据源bean,配置信息使用了占位符填充,所以如果我们想要使用这个bean,就需要替换其中的占位符信息,要怎么做呢?

首先当然是创建配置文件了,在项目中创建jdbc.propertiesJDBC配置文件,如:

a7ba7fa7ddad1f777a7e9cc3c8eff762.png

然后我们需要借助PropertyPlaceholderConfigurer这个类来实现,在项目spring上下文中定义bean:

e8ba393fdcf8790384a86d7c8bbfea9c.png

Bingo,占位符修改完毕,别忘了引入父项目的上下文,毕竟我们要填充占位符的bean是在父项目中的:

测试Demo

好了,接下来来测试项目的可行性,主要实现使用父项目定义的数据源来对MySql进行查询。

先创建一个DemoService类,内容如下:

6c06d72fd508fcf5410f28f6871f6a52.png

52ef8245fd1ec98effcf24cbff43b31d.png

在上下文中为其注入dataSource定义:

c171b834d229673b9763ca9761b8c535.png

别忘了添加log4j.properties配置文件,这里就不贴出文件内容了。

OK,新建一个入口类来执行DemoService的测试吧:

eb734c38ecd5ff36c7a9ef12208cba85.png

最终的项目结构如图

项目结构

3c48951bb2bd4c3c5b42f218c8e1e7e4.png

打包

一切准备就绪,轮到项目打包了,在项目根目录执行以下Maven命令即可

mvn clean package

执行完成后你会发现target目录的结构如图所示

target目录结构

99ce9f5dc1728e6b6de223b65bb929dd.png

project-one.zip就是我们要的打包结果,解压后你会发现,依赖包和配置文件已经放在了各自的目录下

zip包目录结构

执行文件

项目开发完成,接下来就是执行程序了,以Windows平台下为例,首先创建bin目录,目录中创建批处理文件setenv.bat、project-one.bat

因为jar包与配置文件的分离,所以我们需要指定执行jar包时的classpath,批处理文件内容如下:

setenv.bat

997cc4c347fe1d74206c503c1a785ea5.png

project-one.bat

2bb74ecc3b674b169f5dbd44c11cbc42.png

bat文件的内容就不详细解释,有兴趣可以百度了解一下,主要是为了拼接出完整的CLASSPATH,执行project-one-0.0.1.jar可执行jar包

运行

点击project-one.bat运行程序

运行结果

结语

项目终于开发演示完毕,这里只是创建一个打造可执行jar包的子项目作为例子,你还可以创建多个子项目,最后打包的时候合并相同的依赖和配置文件,然后在bin中创建相应项目的执行文件即可,各个子项目之间也可进行相互依赖。

以上开发技巧不仅适用于可执行jar包的开发,同样适用于WEB项目的开发,具体还是由项目需求决定。返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值