Maven架构的依赖管理和项目构建 - 详解

​​​​​​什么是依赖管理

第三方依赖包的管理,可以连接互联网下载项目所需第三方jar包。

自己开发的模块的管理,可以像引用第三方依赖包一样引用自己项目的依赖包。

Maven的依赖管理方式和传统方式有什么区别

传统方式:从官网手动下载jar包,并拷贝到项目的lib目录下

maven:maven的远程仓库自动连接本地仓库,并通过用户编写的pom.xml文件获取目标jar包的坐标(引入依赖)

什么是项目构建

项目构建是一个从编写源代码到编译、测试、运行、打包、部署的过程

传统项目和maven项目构建的区别

传统项目:

打开Idea编写源代码配置文件,对源代码进行编译,可以使用Junit 进行单元测试,把项目打成war包,部署到Tomcat服务器中运行。

maven项目:

maven将项目构建过程进行标准化每个阶段都可以使用一个命令来完成。

清理 --> 编译 --> 测试 --> 报告 --> 打包 --> 部署

使用maven项目构建的好处

可以通过命令完成项目构建。(测试:使用mvn tomcat:run的命令来发布运行项目)

maven对每个构建阶段进行规范,有利于大型团队协作开发

示例

一:

1、按照约定创建Maven项目目录(总文件夹命名为hello)
  • src/main/java —— 存放项目的.java文件 
  • src/main/resources —— 存放项目资源文件,如spring, mybatis配置文件 
  • src/test/java —— 存放所有测试.java文件,如JUnit测试类 
  • src/test/resources —— 测试资源文件 
  • target —— 项目输出位置 
  • pom.xml

创建后的样式如图:

2、在项目Hello根目录建立pom.xml并添加内容
4.0.0
cn.tx.maven
Hello
0.0.1-SNAPSHOT
Hello
junit
junit
4.9
test
3、创建Hello.java文件

在src/main/java/cn/tx/maven目录下新建文件Hello.java并添加内容

注意文件夹名字不要错

package cn.tx.maven;
public class Hello {
public String sayHello(String name){
return "Hello "+name+"!";
}
}

4、创建HelloTest.java文件

在/src/test/java/cn/tx/maven目录下新建测试文件HelloTest.java

注意文件夹名字不要错

package cn.tx.maven;
import org.junit.Test;
import static junit.framework.Assert.*;
public class HelloTest {
@Test
public void testHello(){
Hello hello = new Hello();
String results = hello.sayHello("maven");
assertEquals("Hello maven!",results);
}
}

5、进行maven的项目操作

  1. 打开cmd命令行,进入Hello项目根目录执行 mvn compile命令,查看根目录变化
  2. cmd 中继续录入mvn clean命令,然后再次查看根目录变化
  3. cmd 中录入 mvn clean compile命令, 查看根目录变化
  4. cmd 中录入 mvn clean test命令,查看根目录变化
  5. cmd 中录入 mvn clean package命令,查看根目录变化
  6. cmd 中录入 mvn clean install 查看仓库会把项目安装到仓库里

结果如图:

1.

此时根目录下的target文件夹中应会出现

2.

3.

4.文件根目录应暂无变化

5.内容应和4相同

6.可以看到target目录下新添jar包

二:

1、按照约定创建Maven项目目录

创建方式同上,且该项目依赖示例一

HelloFriend

 --src

 -----main

 ----------java

 ----------resources

 -----test

 ---------java

 ---------resources

 --pom.xml

2、在项目HelloFriend根目录建立pom.xml
4.0.0
cn.tx.maven
HelloFriend
0.0.1-SNAPSHOT
HelloFriend
junit
junit
4.9
test
cn.tx.maven
Hello
0.0.1-SNAPSHOT
compile
3、创建HelloFriend.java文件

在src/main/java/cn/tx/maven目录下新建文件HelloFriend.java

package cn.tx.maven;
import cn.tx.maven.Hello;
public class HelloFriend {
public String sayHelloToFriend(String name){
Hello hello = new Hello();
String str = hello.sayHello(name)+" I am "+this.getMyName();
System.out.println(str);
return str;
}
public String getMyName(){
return "John";
}
}
4、创建HelloFriendTest.java文件

在/src/test/java/cn/tx/maven目录下新建测试文件HelloFriendTest.java

package cn.tx.maven;
import static junit.framework.Assert.assertEquals;
import org.junit.Test;
import cn.tx.maven.Hello;
public class HelloFriendTest {
@Test
public void tesHelloFriend(){
HelloFriend helloFriend = new HelloFriend();
String results = helloFriend.sayHelloToFriend("zhangsan");
assertEquals("Hello zhangsan! I am John",results);
}
}
5、测试打包HelloFriend项目

在HelloFriend目录下执行命令mvn package

此时会出现系统报错

系统报错提示:Could not find artifact cn.tx.maven:Hello:jar:0.0.1-SNAPSHOT,表示无法找到HelloFriend所依赖的Hello 0.0.1-SNAPSHOT.jar

故此我们需要重新构建第一个项目Hello并安装到数据仓库,在命令行Hello根目录下执行mvn clean install

对Hello项目进行清理并安装后,对HelloFriend项目再次进行打包

可以看到本次打包成功,说明HelloFriend项目已经可以加载Hello项目所打包的jar包

posted @ 2025-08-21 14:37  yjbjingcha  阅读(28)  评论(0)    收藏  举报