目录
按照功能将项目进行拆分,每一层都可以单独维护,也可以很方便的被别人使用
银行项目:银行柜台、取款机、网站、手机app对应不同的场景,因此需要按照功能拆分
按照模块拆分:
如电商的项目中,有订单和商品两个模块,订单中需要包含商品的详细信息,所以需要商品的模型类,商品模块也会用到商品的模型类,这个时候如果两个模块中都写模型类,就会出现重复代码,后期的维护成本就比较高。我们就想能不能将它们公共的部分抽取成一个独立的模块,其他模块要想使用可以像添加第三方jar包依赖一样来使用我们自己抽取的模块,这样就解决了代码重复的问题,这种拆分方式就说我们所说的按照模块拆分
(4)修改原项目的pom.xml文件添加domain项目的坐标进行jar包的引入
com.itheima maven_03_pojo 1.0-SNAPSHOT
com.itheima maven_03_pojo 1.0-SNAPSHOT true
依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其使用范围
作用范围:
聚合工程:通常是一个不具有业务功能的"空"工程(有且仅有一个pom文件),将多个模块组织成一个整体,同时进行项目构建;
项目打包方式为pom:说明该项目为聚合或继承项目
com.itheima maven_01_parent 1.0-RELEASE pom ../maven_02_ssm ../maven_03_pojo ../maven_04_dao
com.itheima maven_01_parent 1.0-RELEASE ../maven_01_parent/pom.xml ...... dependencies >12 3 4 5junit 6junit 74.12 8test 91011当 dependencyManagement 标签中 jar 包版本发生变化,所有子项目中有用到该 jar 包的地方对应的版本会自动随之更新,实现版本管理,方便维护
5.2.10.RELEASE 4.12 1.3.0 jdbc:mysql://127.1.1.1:3306/ssm_db org.springframework spring-jdbc ${spring.version} 1 2 34 5../maven_02_ssm/src/main/resources 6true 78 9../maven_03_pojo/src/main/resources 10true 1112 ...1314
jdbc.properties配置文件中也可以引用maven属性 ,将jdbc.url的值直接获取Maven配置的属性
jdbc.url = ${jdbc.url}
两种方式实现不动文件快速切环境
- <profiles>
- <!--开发环境-->
- <profile>
- <id>env_dep</id>
- <properties>
- <jdbc.url>jdbc:mysql://127.1.1.1:3306/ssm_db</jdbc.url>
- </properties>
- <!--设定是否为默认启动环境-->
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- </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>
maven-surefire-plugin 2.12.4 false **/BookServiceTest.java
3.命令行跳过测试
企业内部搭建一个类似于中央仓库的东西,把自己的内容上传上去,其他人就可以从上面下载jar包使用,用于解决团队内部的资源共享与资源同步问题
工具:Nexus,JFrog
以nexus为例,进入nexus-3.30.1-01\bin目录执行nexus.exe /run nexus,浏览器访问http://localhost:8081
- <!--配置本地Maven对私服的访问权限-->
- <servers>
- <server>
- <id>itheima-snapshot</id>
- <username>admin</username>
- <password>admin</password>
- </server>
- <server>
- <id>itheima-release</id>
- <username>admin</username>
- <password>admin</password>
- </server>
- </servers>
- <!--配置私服的访问路径-->
- <mirrors>
- <mirror>
- <!--配置仓库组的ID-->
- <id>maven-public</id>
- <!--*代表所有内容都从私服获取-->
- <mirrorOf>*</mirrorOf>
- <!--私服仓库组maven-public的访问路径-->
- <url>http://localhost:8081/repository/maven-public/</url>
- </mirror>
- </mirrors>
- <!--配置当前工程保存在私服中的具体位置-->
- <distributionManagement>
- <repository>
- <!--和maven/settings.xml中server中的id一致,表示使用该id对应的用户名和密码--
- >
- <id>itheima-release</id>
- <!--release版本上传仓库的具体地址-->
- <url>http://localhost:8081/repository/itheima-release/</url>
- </repository>
- <snapshotRepository>
- <!--和maven/settings.xml中server中的id一致,表示使用该id对应的用户名和密码--
- >
- <id>itheima-snapshot</id>
- <!--snapshot版本上传仓库的具体地址-->
- <url>http://localhost:8081/repository/itheima-snapshot/</url>
- </snapshotRepository>
- </distributionManagement>
2.发布资源到私服
mvn deploy