分模块开发创建dao子模块&子工程打包&打包参数解释——(七)
1.选中父工程右键新建maven module
2.添加模块名称
3.选择jar模式
4.添加dao模块的代码与配置文件(具体的配置文件在四整合里面有源码)
5.junit测试(导入junit依赖)
测试代码:
1 package cn.qlq.mapper; 2 3 import javax.annotation.Resource; 4 5 import org.junit.Test; 6 import org.junit.runner.RunWith; 7 import org.springframework.test.context.ContextConfiguration; 8 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 9 10 @RunWith(SpringJUnit4ClassRunner.class) 11 @ContextConfiguration("classpath:applicationContext-dao.xml") 12 public class UserMapperTest { 13 @Resource(name = "userMapper") 14 private UserMapper userMapper; 15 16 @Test 17 public void fun1() { 18 System.out.println(userMapper.findUserById(1)); 19 } 20 }
结果:
6.发布到本地仓库(一般不发布测试,将junit测试注释掉)
7.查看本地仓库结构:
关于父子工程打包
有的时候希望打包子工程的时候,将依赖的兄弟工程也同步打包。
mvn clean package -T 1C -Dmaven.test.skip=true -Dmaven.compile.fork=true -pl module/service -am 查看日志: 会将当前子工程依赖的兄弟工程也进行打包 // 参数解释 mvn clean: 清理目标目录(target),删除上次构建生成的文件,包括编译后的类文件、测试结果和打包文件。 package: Maven生命周期中的一个阶段,用于编译源代码、运行测试(如果未跳过测试)、处理资源文件并打包项目(例如生成JAR或WAR文件)。 -T 1C: 这个标志用于设置并行构建的线程数。1C表示使用一个核心(Core)的并行度,这意味着Maven会使用单个处理器的核心来执行任务。如果你的机器有更多的核心,你可以增加这个数字来加速构建。 -Dmaven.test.skip=true: 设置系统属性maven.test.skip为true,指示Maven跳过所有的测试执行。这可以加快构建速度,特别是在你不关心测试或者想快速构建可部署的工件时。 -Dmaven.compile.fork=true: 这个标志告诉Maven在单独的Java进程中编译源代码。这可以防止编译过程中的内存溢出或其他问题,尤其是在处理大型项目时。 -pl module/service: 通过-pl(--projects)参数指定要构建的特定模块。在这个例子中, module/service是模块的路径,意味着只构建service模块,而忽略项目中其他的模块。如果service是一个多模块项目中的子模块,那么只会构建这个子模块及其直接或间接依赖的子模块。 -am: --also-make参数。当指定一个模块时,Maven会自动构建这个模块所依赖的所有未构建的模块。结合-pl一起使用,即使你只指定了一个模块,Maven也会构建所有依赖的模块。 综上所述,这个命令将清理项目,跳过测试,使用单个处理器核心并行构建,仅构建 module/service模块及其依赖的模块,并打包结果。
【当你用心写完每一篇博客之后,你会发现它比你用代码实现功能更有成就感!】