首页 > 其他分享 >maven的原理、配置与简单应用

maven的原理、配置与简单应用

时间:2023-03-18 21:23:43浏览次数:39  
标签:依赖 仓库 配置 springframework maven org 原理


目录

1 Java中的依赖和jar文件

2 依赖仓库的设计与实现

3 maven项目

 - 3.1 maven的配置:配置settings.xml、建立本地仓库目录maven-repo

 - 3.2 maven的使用:以Spring项目的配置为例(IDEA2022.2)

   -   3.2.1 创建常规的maven项目

   -   3.2.2 配置facet

   -   3.2.3 配置IDEA中maven设置和本地仓库的路径

 - 3.3 pom.xml 配置 build.defaultGoal

 - 3.4 配置 dependencies.dependency 标记、配置依赖项的"组ID-工件ID-版本号"

 - 3.5 更新maven本地仓库(两种方法:"mvn -U install"、IDEA-maven刷新按钮)


1 Java中的依赖和jar文件

        在软件开发中除了自己的代码,通常还需要使用别人的代码或资源来完成一个业务,而使用这些导入的文件包就是依赖关系。

        在Java中,依赖通常是指jar文件。jar(Java Archive)是一种文件包,它包含了一组代码或资源文件,可以其他的Java类被导入并使用。在文件格式上,jar类似于zip,但是因为它被jvm加载,所以可以跨平台。

        当java代码需要使用一些Java的类库、框架(如Spring)或其他组件时(也就是使用依赖时),此时需要将这些依赖的jar文件添加到项目中,并 import 到需要依赖的类中。

2 依赖仓库的设计与实现

        在jakartaEE开发中,需要大量的依赖,寻找、更新、管理依赖是一件很繁琐的事情。

        而仓库是将所有的依赖集中起来的一种设计,在仓库中可以找到所有需要的依赖文件(jar包)。

        如何做到这一点?一种仓库设计是将所有依赖都集中存储到 一个"中央仓库"服务器上,开发人员可以访问中央仓库下载需要的依赖文件。

        maven就是基于仓库的自动化的java构建工具,在项目中,它只需要配置 pom.xml 的XML文件就可以完成大量依赖的配置,而不需要手动去寻找和管理依赖。

        而且依赖从仓库服务器下载完之后,会被保存到本地仓库(Local Reposity),按照仓库服务器上的依赖的坐标(这个坐标唯一,按照一种“文件目录”的格式存储,按域名定义),进行在别的项目使用相同依赖就不需要重复下载依赖了。

        ”文件目录“的格式:就比如下面这两个包(package)的坐标:com.example.user 和 com.example.user.controller,这两个包在文件系统中的相对路径分别是:java/com/example/user 和 java/com/example/user/comtroller,坐标中的每一个点(.)就代表了文件目录的一级。

        依赖的坐标的定义:域名的倒序,比如 org.springframework.组件名,它就是来自于: springframework.org 这个域名,这个域名真实存在,打开这个域名会跳转到 spring.io。

3 maven项目

3.1 maven的配置:配置settings.xml、建立本地仓库目录maven-repo

        安装好 maven 后,需要配置根目录下conf目录下的 settings.xml 文件,配置的内容如下:

······
<localRepository>···\apache-maven-3.8.6\maven-repo</localRepository><!-- maven的安装路径 -->
······
······
<mirrors>
	  <mirror>
		  <id>aliyunmaven</id>
		  <mirrorOf>*</mirrorOf>
		  <name>阿里云公共仓库</name>
		  <url>https://maven.aliyun.com/repository/public</url>
	  </mirror>
  </mirrors>
······
······
<profiles>
	  <profile>
		  <id>default</id>
		  <repositories>
			  <repository>
				  <id>central</id>
				  <name>Maven Central</name>
				  <url>https://repo.maven.apache.org/maven2</url>
				  <layout>default</layout>
				  <snapshots>
					  <enabled>false</enabled>
				  </snapshots>
			  </repository>
			  <repository>
				  <id>spring</id>
				  <url>https://maven.aliyun.com/repository/spring</url>
				  <releases>
					  <enabled>true</enabled>
				  </releases>
				  <snapshots>
					  <enabled>true</enabled>
				  </snapshots>
			  </repository>
		  </repositories>
		  <pluginRepositories>
			  <pluginRepository>
				  <id>central</id>
				  <name>Maven Central</name>
				  <url>https://repo.maven.apache.org/maven2</url>
				  <layout>default</layout>
				  <snapshots>
					  <enabled>false</enabled>
				  </snapshots>
				  <releases>
					  <updatePolicy>never</updatePolicy>
				  </releases>
			  </pluginRepository>
		  </pluginRepositories>
	  </profile>
</profiles>
<activeProfiles>
	<activeProfile>default</activeProfile>
</activeProfiles>
······
······

        在配置完 settings.xml 后,在根目录下新建一个文件夹:maven-repo,这个文件夹的作用就是充当本地仓库存储下载的依赖。

        这个文件夹被上面配置的 settings.xml 中的<localRepository> 标记注册为maven的本地仓库。

3.2 maven的使用:以Spring项目的配置为例(IDEA2022.2)

3.2.1 创建常规的maven项目


3.2.2 配置facet


3.2.3 配置IDEA中maven设置和本地仓库的路径


3.3 pom.xml 配置 build.defaultGoal

        在 project 标记内添加 build.defaultGoal 标记:

<project ······>
    ······
    ······
    
    <build>
        <defaultGoal>compile</defaultGoal>
    </build>
</project>

3.4 配置 dependencies.dependency 标记、配置依赖项的"组ID-工件ID-版本号"

        在 project 标记内添加 denpendencies.denpendency 标记,这样就可以添加maven的依赖项了:

        注意:我建的项目叫做 luoyi.maventest.springdemo01-1.0-SNAPSHO,其中

        组ID/groupId:luoyi.maventest,工件ID/artifactId:springdemo01,版本/version:1.0-SNAPSHOT

        Spring框架就是一个组,它的组ID/groupId:org.springframework,其中的任意一个jar包,就是org.springframework的一个工件/artifact。

        比如 spring-beans 就是 org.springframework 这个组的一个工件,它的工件Id/artifactId:spring-beans,它的版本/ version 也有很多,比如 5.2.6-RELEASE 版本。

        现在,我们添加一下 org.springframework / Spring框架组的几个工件:

<project ······>
······
······
    
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>
    </dependencies>
    
······
······
</project>

3.5 更新maven本地仓库(两种方法:"mvn -U install"、IDEA-maven刷新按钮)

        在终端输入 mvn -U install强制下载更新本地仓库的依赖(需联网)

        或者使用IDEA的刷新按钮:


        本文作于2023/3/18,于此留念

标签:依赖,仓库,配置,springframework,maven,org,原理
From: https://www.cnblogs.com/lovecodingforever/p/17231530.html

相关文章