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包

相关推荐
寒士obj15 分钟前
MyBatis-Plus基础篇详解
java·mybatis
我崽不熬夜16 分钟前
List、Set、Map,你真的会选用吗?
java·后端·java ee
Y4090011 小时前
Java算法之排序
java·数据结构·笔记·算法
ALLSectorSorft1 小时前
搭子交友 app 动态分享与打卡系统设计实现
java·服务器·数据库·人工智能·oracle·交友
long3161 小时前
适配器模式 java demo
java·javascript·后端·程序人生·设计模式·适配器模式
##学无止境##1 小时前
从青铜到王者:Java设计模式——代理模式
java·设计模式·代理模式
pengzhuofan1 小时前
Java设计模式-适配器模式
java·设计模式·适配器模式
越来越无动于衷1 小时前
代理模式深度解析:从静态代理到 Spring AOP 实现
java·spring·代理模式
Meteors.1 小时前
23种设计模式——适配器模式(Adapter)详解
java·设计模式·适配器模式
喂完待续2 小时前
【序列晋升】12 Spring Boot 约定优于配置
java·spring boot·spring·架构·约定大于配置·序列晋升·tech arch