目录
- 继承
- 1. 问题
- 2. 解决思路
- 3. 操作步骤
- 聚合
- 1. 为什么要使用聚合?
- 2. 配置方法
- 自动化部署
- 附:如何查找依赖信息?
继承
1. 问题
因为test范围的依赖不能传递,所以必然会分散在各个模块工程中,很容易造成版本不一致。
比如,我们每个工程都用了Junit组件,这个组件的依赖范围就是test。
所以我们需要统一管理各个模块工程中对junit依赖的版本。
2. 解决思路
将junit依赖统-提取到"父”工程中,在子工程中声明junit依赖时不指定版本,以父工程中统一设定的为准。同时也便于修改。
3. 操作步骤
- 创建一个maven工程作为父工程。注意,打包方式为pom
创建父工程: - 在子工程中声明对父工程的引用
<!-- 子工程中声明父工程 -->
<parent>
<groupId>com.veeja.maven</groupId>
<artifactId>Parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 以当前文件为基准的父工程的pom.xml文件的相对路径 -->
<relativePath>../Parent/pom.xml</relativePath>
</parent>
- 将子工程的坐标中与父工程坐标中重复的内容删除
- 我们可以看到在子工程中设置了相应的坐标之后,有些重复的内容就报警告了,我们删除掉这些内容就行了。
- 在父工程中统一Junit的依赖
<!--配置依赖的管理 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
- 在子工程中删除Junit依赖的版本号
我们在配置完上一步后,就会发现,在子工程中的Junit依赖配置也会报警告:
我们也把这一行删掉就可以了。
形成:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
这样我们就完成了对依赖版本的统一,我们修改父工程的依赖版本,相应的字版本的依赖信息也会改变。
聚合
1. 为什么要使用聚合?
将多个工程拆分为模块后,需要手动逐个安装到仓库后依赖才能够生效。
修改源码后也需要逐个手动进行clean操作。而使用了聚合之后就可以批量进行 Maven 工程的安装、清理工作。
2. 配置方法
我们可以在一个总的聚合工程中配置各个参与聚合的模块。
例如,在Parent中,配置我们之前写的三个工程:
<!-- 配置聚合 -->
<modules>
<module>../HelloMaven</module>
<module>../HelloFriend</module>
<module>../MakeFriends</module>
</modules>
使用方式:在聚合工程的pom.xml上右键进行相应的run as→ maven … 就可以了。
自动化部署
我们在完成一个maven的web项目后是需要部署到web容器(Tomcat)的。我们可以手动的执行package命令,然后发到服务器,也可以在eclipse中直接运行,但是实际上,我们可以进行配置,让它自动化的去部署一个项目。
配置如下,以及详细的解释我都放在注释里面:
<!-- 配置当前工程构建过程中的特殊设置 -->
<build>
<!-- 工程最终的名字 -->
<finalName>webDemo</finalName>
<!-- 配置构建过程中需要使用的插件 -->
<plugins>
<plugin>
<!-- cargo是一个专门从事开发“启动Servlet容器”的组织 -->
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.2.3</version>
<!-- 针对这个插件进行的配置 -->
<configuration>
<!-- 配置当前系统中容器的位置 -->
<container>
<containerId>tomcat7x</containerId>
<home>E:\Tomcat7\apache-tomcat-7.0.94</home>
</container>
<configuration>
<type>existing</type>
<home>E:\Tomcat7\apache-tomcat-7.0.94</home>
<!-- 如果Tomcat端口为默认值8080则不必设置该属性 -->
<!--
<properties>
<cargo.servlet.port>8989</cargo.servlet.port>
</properties>
-->
</configuration>
</configuration>
<!-- 配置插件在什么情况下执行 -->
<executions>
<execution>
<id>cargo-run</id>
<!-- 生命周期的阶段 -->
<phase>install</phase>
<!-- 插件的目标 -->
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
我们在命令行进入对应的目录,并且输入mvn deploy
命令就可以一键部署了。
附:如何查找依赖信息?
我们给出了一些依赖信息,但是有很多是我们不知道的,我们想用的话,可以去
http://mvnrepository.com 搜索相关的依赖信息。
END.