maven是一个项目构建和管理的工具。我们可以通过maven仓库可以实现管理构建(主要是JAR还包括:WAR,ZIP,POM等等);我们可以通过maven插件可以实现编译源代、产生Javadoc文、运行unit测试、生成站点等等功能。maven通过分模块开发提升效率
工具/原料
创建parent项目
右击创建maven项目创建parent项目模块,(通过parent项目中的pom.xml文件实现聚合和继承的功能);如下图:{聚合:不再对其它子模块进行一一操作,在parent直接操作即可,方便管理继承:类似java的继承——对子模块中共同属性的抽象(parent中的pom.xml中有的属性子模块中不需要在添加,避免重复)}
修改pom.xml文件
4.0.0 user-parent http://maven.apache.org com.company.user user-parent 0.0.1-SNAPSHOT pom 注:在修改packaging为pom,在project添加内容
添加聚合功能
例如项目中的模块分类为core、dao、log、service在pom.xml中的project标签中添加: ../user-core ../user-dao ../user-log ../user-service
添加继承的功能
1继承功能的实现:不需要在parent中,在其他项目模块的pom.xml中引入parent项目中的pom.xml文件即可如下: org.konghao.user user-parent0.0.1-SNAPSHOT../user-parent/pom.xml
2继承功能之自定义变量和全局变量(maven内置隐式变量)--引用方式为${}:2.1.全局变量(maven内置隐式变量——参考我的maven内置隐式变量的使用):${project.groupId}${project.artifactId}2.2.自定义变量: UTF-8 4.10 com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/mysql root 123456 备注:使用范围:parent项目中和继承parent的项目中使用方式:${junit.version}例如: junit junit ${junit.version} test
3继承功能之发布仓库 user-snapshots User Project SNAPSHOTS http://192.168.0.199:8081/nexus/content/repositories/MyUserReposSnapshots/ user-releases User Project Release http://192.168.0.199:8081/nexus/content/repositories/MyUserReposRelease/
4继承功能之全局依赖和自定义依赖:4.1.全局依赖:在所有继承parent的子模块中都会引入jar包 junit junit ${junit.version}test 4.2.自定义依赖:在继承parent的子模块中通过指定来引入依赖 org.springframework spring-web 3.1.1.RELEASE 指定方式:org.springframework spring-web 不需要指定versin