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

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

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

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

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

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

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

什么是项目构建

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

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

传统项目:

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

maven项目:

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

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

使用maven项目构建的好处

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

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

示例

一:

1、 按照约定创建 M aven项目目录(总文件夹命名为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并添加内容
XML 复制代码
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>cn.tx.maven</groupId>
  <artifactId>Hello</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Hello</name>
  
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.9</version>
			<scope>test</scope>
		</dependency>		
		
	</dependencies>
</project>
3、创建Hell o.java 文件

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

++注意文件夹名字不要错++

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

++注意文件夹名字不要错++

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 查看仓库会把项目安装到仓库里

结果如图:

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

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

5.内容应和4相同

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

二:

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

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

HelloFriend

--src

-----main

----------java

----------resources

-----test

---------java

---------resources

--pom.xml

2、在项目HelloFriend根目录建立pom.xml
XML 复制代码
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>cn.tx.maven</groupId>
  <artifactId>HelloFriend</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>HelloFriend</name>
  
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.9</version>
			<scope>test</scope>
		</dependency>		
		
		<dependency>
			<groupId>cn.tx.maven</groupId>
			<artifactId>Hello</artifactId>
			<version>0.0.1-SNAPSHOT</version>
			<scope>compile</scope>
		</dependency>		
		
	</dependencies>
</project>
3、创建 HelloFriend.java 文件

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

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

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、测试打包He lloFriend 项目

在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包

相关推荐
夕除1 小时前
MVN--02
maven
搜佛说2 小时前
02-第2章-核心概念与架构
数据库·物联网·微服务·架构·边缘计算·iot
棉花骑士2 小时前
【AI Agent】面向 Java 工程师的Claude Code Harness 学习指南
java·开发语言
爱敲代码的小鱼2 小时前
springboot(2)从基础到项目创建:
java·spring boot·spring
迈巴赫车主3 小时前
蓝桥杯19724食堂
java·数据结构·算法·职场和发展·蓝桥杯
i220818 Faiz Ul4 小时前
动漫商城|基于springboot + vue动漫商城系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·动漫商城系统
海兰4 小时前
【实战】MCP 服务在 Nacos 中注册状态分析与优化
android·java·github·银行系统·银行ai
Makoto_Kimur5 小时前
Java 打印模板大全
java·开发语言·排序算法
程序员榴莲5 小时前
Java(十)super关键字
java·开发语言
HAPPY酷5 小时前
Python高级架构师之路——从原理到实战
java·python·算法