Maven(七)----分模块开发

一、创建父工程


父工程如下:


父工程不做事,来指挥。来管理,聚合。

所有jar包由父工程来管理,子工程从父工程继承jar包。

二、创建子工程-dao

在ssh-parent项目上右击 ,创建时选择 Maven Module


点击next


点击finish


把ssh项目中与dao相关的部分移植到这里来。

三、创建子工程-service

创建过程与dao类似


移植ssh中与service相关的部分


我们的service依赖了dao。要在service工程中引入dao工程。在引入之前,dao工程要发布到本地仓库。ssh-parent也要打进去。

发布parent工程

service报错了,先在父工程中注释掉service


ssh-parent右键-run as-maven build..



发布成功。我们发布的是parent,结果是,dao也打进去了。

引入dao工程所打成的jar包

右键ssh-service-maven-add dependency



创建一个测试类,此时,我们发现junit缺少了,可是,我们在dao里面引入了,而service又引入了dao。

这是因为dao里面的junit的scope是test。这就是依赖范围对依赖传递造成的影响


举例:service依赖dao,是最左边一列的compile,dao依赖junit是第一行的test,传递的结果是service无法依赖到junit。

创建好了测试类

@RunWith(SpringJUnit4ClassRunner.class) // 使用junit4进行测试
@ContextConfiguration(locations = { "classpath:applicationContext-service.xml" }) // 加载配置文件
public class CustomerServiceImplTest {
	@Autowired
	private CustomerService customerService;

	@Test
	public void test() {
		Customer customer = customerService.findById(1L);
		System.out.println(customer);
	}
}

运行之后:



也可以这样:


四、创建子工程-web



对service工程进行发布。


我们要发布时候,测试代码都已经没用了。在打包的过程中,会被运行。所以,我们把test代码注释掉。


install成功


把service工程关闭

在web工程中添加service的引用。


搜不出来,是因为索引没有更新。


再添加引用就成功了



在ssh-web工程上-run as-maven build...-tomcat:run



还可以在ssh-parent工程上运行



在ssh-parent上运行就是所谓的聚合。

源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven-assembly-plugin是一个用于打包的插件,可以将项目中的多个模块合并成一个可执行的JAR包或者WAR包。然而,有时候我们可能需要对已经打包好的JAR或者WAR包进行进一步的处理或者外部打包。以下是关于maven-assembly-plugin外部打包的解答。 首先,我们需要确保已经正确配置了maven-assembly-plugin,并且在项目的pom.xml文件中已经定义好了自定义的assembly描述文件(assembly.xml)。 在进行外部打包之前,我们需要先将项目进行构建和打包。在项目根目录下通过命令行输入"mvn clean install"命令来构建项目,并且将项目打包成JAR或者WAR文件。 接下来,在项目根目录下创建一个新的文件夹(例如,external_package),用于存放外部打包的文件。 然后,可以通过以下命令来进行外部打包: mvn assembly:assembly -Ddescriptor=assembly.xml -DoutputDirectory=/path/to/external_package 在上面的命令中,-Ddescriptor参数用于指定assembly描述文件所在的路径以及文件名称,-DoutputDirectory参数用于指定外部打包文件存放的路径。 执行完上述命令后,maven-assembly-plugin会根据assembly.xml文件的定义,在指定的路径下生成外部打包文件。 通过以上步骤,我们就可以实现maven-assembly-plugin的外部打包功能。需要注意的是,我们在进行外部打包之前,需要先正确配置和打包项目,并且确保已经定义了正确的assembly描述文件。 外部打包可以用于将项目的可执行文件(如JAR或者WAR文件)与其它资源(如配置文件或者依赖库)合并打包成一个单独的压缩文件,方便部署和发。它可以帮助我们将项目打包成一个易于使用和发布的形式,简化部署流程,提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值