分模块开发
1、聚合(一个工程管理多个工程的方式)
首先创建Maven模块,设置打包类型为pom
<packaging>pom</packaging>
<!--设置管理的模块-->
<modules>
<module>../maven_02_ssm</module>
<module>../maven_03_pojo</module>
<module>../maven_04_dao</module>
</modules>
//按照依赖关系运行,与顺序无关
**每个maven工程都有对应的打包方式,默认为jar,web工程打包方式为war
2、继承
子工程继承父工程中的配置信息,
作用:简化配置、减少版本冲突
流程:1.<packaging>pom</packaging>
2.在父工程的pom文件中配置依赖关系(子工程沿用)
3.子工程使用可选依赖时,仅提供群组id和项目id,无需版本号(由父工程统一提供)
聚合 | 继承 |
快速构建项目 | 快速配置 |
当前模块配置关系,能够感知参与聚合的模块有哪些 | 子模块中配置,父模块无法感知哪些子模块继承自己 |
打包方式均为pom 属于设计模块,无实际内容 |
3、属性
<properties>
<spring.version>5.2.10.RELEASE</spring.version>
<juint.version>4.12</juint.version>
<mybatis-spring.version>1.3.0</mybatis-spring.version>
</properties>
<!--引用属性-->
<dependency>
<groupId>org.springframework<groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
<dependency>
4、配置文件加载
<build>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<!--${project.basedir}内置的系统属性-->
<!--配置maven打包waar包时,忽略web.xml检查-->
<plugin>
<groupId>org.apach.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
5、多环境开发
<!--配置多环境-->
<profiles>
<!--开发环境-->
<profile>
<id>env_dep</id>
<properties>
<jdbc.url>jdbc:mysql://127.1.1.1:3306/ssm_db</jdbc.url>
</properties>
</profile>
<!--生产环境-->
<profile>
<id>env_pro</id>
<properties>
<jdbc.url>jdbc:mysql://127.2.2.2:3306/ssm_db</jdbc.url>
</properties>
</profile>
<!--测试环境-->
<profile>
<id>env_test</id>
<properties>
<jdbc.url>jdbc:mysql://127.3.3.3:3306/ssm_db</jdbc.url>
</properties>
</profile>
</profiles>
<!--设置默认启动环境-->
//<activation>
// <activeByDefault>true</activeByDefault>
//</activation>
***构建过程
mvn 指令 -p 环境定义id
(mvn install -p pro_env)
6、跳过测试
打包过程中会测试功能,但是功能更新没有开发完毕时:
(1)
(2)
<build>
<resources>
<!--设置资源目录,能够解析${}-->
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
(3) 细粒度控制
includes excludes
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<skipTests>false</skipTests>
<!--排除不参与测试的内容-->
<excludes>
<exclude>**/BookServiceTest.java</exclude>
</excludes>
</configuration>
</plugin>
(4)mvn package -D skipTests
7、私服
宿主仓库 | hosted | 保存自主研发+第三方资源 | 上传 |
代理仓库 | proxy | 代理连接中央仓库 | 下载 |
仓库组 | group | 为仓库编组简化下载操作 | 下载 |
maven-setting.xml
<servers>
<!--配置访问私服的权限-->
<server>
<id>wrx-snapshot</id>
<username>admin</username>
<password>admin</password>
</server>
<server>
<id>wrx-release</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
<mirrors>
<!--私服路径-->
<mirror>
<id>maven-public</id>
<url>http://localhost:8081/repository/maven-public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
父工程:pom.xml
<!--配置当前工程保存在私服中的具体位置-->
<distributionManagement>
<repository>
<id>wrx-release</id>
<url>http://localhost:8081/repository/wrx-release/</url>
</repository>
<snapshotRepository>
<id>wrx-snapshot</id>
<url>http://localhost:8081/repository/wrx-snapshot/</url>
</snapshotRepository>
</distributionManagement>