Maven基础
Maven入门程序
第一个Maven项目Hello
<1>新建Maven项目
- a.新建Maven项目

- b.选择Maven骨架


- c.查看建立完成的目录结构和指定库文件的变化
第一次加载Maven项目需要等待一段时间,等待相关内容加载完成再进行操作(如果长时间无反应,右键工程properties选择maven-->update project更新maven工程,等待完成即可)

Maven的目录结构每个目录都有自己的功能 也就是遵循Maven约定
遵从Maven约定
src/main/java —— 存放项目的.java文件
src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件
src/test/java —— 存放所有测试.java文件,如JUnit测试类
src/test/resources —— 测试资源文件
target —— 项目输出位置
pom.xml —— maven依赖项配置(jar包配置)
<2>配置pom.xml
修改jre为自定义的jdk版本,与此同时,通过配置pom.xml可以实现jar包的导入、移除,可以更换Junit的jar包查看变化
通过在maven官网查找相关jar包,直接复制相关代码进行配置即可
http://mvnrepository.com/

此处替换原有的junit-3.8.1.jar进行测试,查找最新的junit相关jar包进行替换


修改后:

<3>编码测试
Hello.java:
public
HelloTest.java:
import static
程序执行测试:右键选择要测试的方法名,点击run as --> junit test进行测试

<4>执行程序
选中pom.xml 右键 --> run as --> maven build,依次执行以下命令 查看根据目录的变化

a.执行compile命令
查看根目录变化 编译程序为.class文件


s
b.执行clean 命令
清理target文件目录的所有的内容


c.执行clean compile
先执行清理,然后执行编译

d.执行clean test 执行测试程序
执行清理,然后执行测试,如果程序正常 则会提示执行时间等信息

如果执行失败,则考虑是maven工程加载的时候缺失一些必要的文件,处理方式:通过另外提供的较完整的respository进行替换原有的内容,重新更新maven工程,等待更新完成再次进行测试即可(由于网络原因可能会导致部分文件在加载的时候没能加载完全,从而导致在使用的时候报错,因此在导入文件的时候要耐心等待,如果加载出错需要将原有的相关目录完全删除,否则再次导入还是无法使用)
此外如果在执行clean compile指令显示错误(无法匹配jre环境,但在cmd窗口下可以执行),则有可能是eclipse中的jdk配置是选择了jre,需要将其修改至相应的jdk即可
e.执行clean package 打包数据
把程序打成jar包,可以供其他项目使用,生成的保存目录参考控制台输出,此处为
E:workspaceJavaEEProjectsHellotarget


第二个Maven项目HelloFriend
<1>创建Maven工程
创建maven工程参考上述,创建完成需要配置相关属性pom.xml、jre版本
<2>如何引用其他工程的内容?
在第二个Maven工程HelloFriend引用Hello工程的内容
a.将指定工程部署到仓库下(Hello工程执行install执行)
执行install命令即可部署,把当前工程部署到到仓库之下,此处仓库路径
C:UsersAdministrator.m2repository

部署完成可以在相应的目录查看到相关信息


b.配置pom.xml,将Hello工程引入
在pom.xml中进行配置,配置格式:
<dependency>
相关参数均可以在Hello工程下的pom.xml文件中查阅,配置如下所示
<dependency>
完成配置点击保存,等待加载完成,刷新工程可以依赖项引入了Hello工程,完成引入则可正常使用Hello工程相关内容

pom.xml依赖配置:
<dependencies>
c.在HelloFriend中引用Hello工程
HelloFriend.java:
public
HelloFriendTest.java:
public
测试结果正常显示:

将HelloFriend工程install到指定仓库供下一步操作
第三个Maven项目MakeFriend
a.pom.xml配置
根据上述步骤完成Maven工程创建,在pom.xml中配置相关属性即可(此处引入HelloFriend工程,修改pom.xml相关内容和jre)
<dependencies>
查看工程maven依赖变化,自动将Hello、HelloFriend工程一并导入

b.程序测试
MakeFriend.java:
public
MakeFriendTest.java:
public
测试结果正常显示

间接依赖和直接依赖
a.在上述内容的基础上,在Hello项目中的pom.xml 添加如下代码,查看Maven Dependencise
<dependency>

b.在HelloFriend项目中添加如下代码,查看相应的变化
<dependency>

c.在MakeFriend中查看maven的变化

根据结果分析显示在HelloFriend没有引入1.2.17的log4j时,MakeFriend中引用的是1.2.12版本的log4j,在HelloFriend引入1.2.17的log4j后,MakeFriend中的log4j版本相应发生变化,其遵循原则为路径最近者优先
