maven的安装和配置

目录

1、maven的作用:

2、maven的下载与安装:

3、maven仓库:

4、maven的坐标:

5、maven的依赖的性质:

6、依赖的范围:

7、maven的生命周期:

 


1、maven的作用:

        Maven 作为依赖管理工具,后期我们创建的项目会越来越复杂,会引入很多的jar包,我们手动引入加jar包的过程很繁琐,而且jar的来源千奇百怪,而使用maven的话可以帮助我们管理我们引入的jar包,使用这个工具的话就会很方便。maven是apache软件基金会组织维护的一款专门为Java项目提供依赖管理和构建的工具。

2、maven的下载与安装:

  1. 下载地址: 

Maven – Download Apache Maven

        2.解压到本地:

        这边的话,可以找一个专门的目录(没有中文名!!!),然后可以在同级目录下创建一个文件夹作为本地仓库。

        3.修改配置文件D:\Maven\apache-maven-3.9.4\conf\settings.xml

        指定本地仓库

        刚刚创建的文件夹的目录

        修改远程镜像仓库

<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>

        一定要在mirrors标签里面!!!!

        修改默认的jdk版本 

<profile>
	  <id>jdk-1.8</id>
	  <activation>
		<activeByDefault>true</activeByDefault>
		<jdk>1.8</jdk>
	  </activation>
	  <properties>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
	  </properties>
	</profile>

        注意在profiles标签里面,如果默认的话是jdk1.5 ,我们现在设置的是jdk1.8

        配置环境变量:

        这里说一下,maven是依赖的jdk的,要想配置好,先要装jdk!!! 

MAVEN_HOME
D:\Maven\apache-maven-3.9.4

        结合自己下载的版本和存放的路径

        配置Path:

%MAVEN_HOME%\bin

命令行下测试一下!mvn -v

3、maven仓库:

        仓库:用于存储资源,包含各种jar包

仓库分类:

  1. 本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
  2. 远程仓库:非本机电脑上的仓库,为本地仓库提供资    
  • 中央仓库:Maven团队维护,存储所有资源的仓库。

  • 私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源

     私服的作用:保存具有版权的资源,包含购买或自主研发的iar而中央仓库中的iar都是开源的,不能存储具有版权的资源一定范围内共享资源,仅对内部开放,不对外共享

4、maven的坐标:

        这里说一下不是真的坐标,是我们在xml文件中引入依赖的一种确定方式!参数是 GroupId、ArtifactId、Version 用来指定现在使用jar包的坐标,使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成,举个例子!

<!-- https://mvnrepository.com/artifact/jakarta.xml.bind/jakarta.xml.bind-api -->
<dependency>
    <groupId>jakarta.xml.bind</groupId>
    <artifactId>jakarta.xml.bind-api</artifactId>
    <version>4.0.1</version>
</dependency>

       通过这三个属性就可以确定要引入的jar包!

        groupid是代表组织或者公司开发的某一个项目

        artfactid代表项目下的某一模块

        versionid代表的是版本号

        引入jar包的话首先会在本地仓库找,如果没有会在我们配置的镜像的仓库找,如果我们配置的镜像的仓库也没有,回到官方的仓库找    

<!--插件-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <target>1.8</target><!--生成的字节码文件的版本-->
                    <source>17</source><!--编译的时候使用的-->
                </configuration>
            </plugin>
        </plugins>
    </build>

    

5、maven的依赖的性质:

        依赖可以是jar包,可以是项目,依赖同时具有传递性,就比如说项目A中引入项目B,但是B里面又有很多的依赖,当A依赖B项目的时候,自然会引入B中的所有的依赖。通过传递过来的依赖可以叫做间接依赖。

        依赖传递的冲突的问题:

     那么怎么管理传递过程中的依赖呐!

可选依赖:   

        可选依赖是被传递的依赖可以选择自己依赖的资源进行隐藏,被隐藏后的资源在进行依赖传递的时候将不会被传递。

        在引入的依赖的时候除啦基本的坐标之外,添加一个<optional>true</optional>标签的设置就可以把依赖进行隐藏!

       那么问题来啦!不被隐藏的依赖就必须被传递吗?当然不是!依赖其他项目的项目在依赖传递的时候可以选择排除依赖。

排除依赖:

        

<dependency>
    <groupId>com.itheima</groupId>
    <artifactId>maven-projectB</artifactId>
    <version>1.0-SNAPSHOT</version>
   
    <!--排除依赖, 主动断开依赖的资源-->
    <exclusions>
    	<exclusion>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </exclusion>
    </exclusions>
</dependency>

        虽然两个的作用都是排除依赖但是使用的的对象是不一样的,可选依赖是被依赖的项目。而排除依赖是依赖的项目。 

6、依赖的范围:

        依赖的jar包默认的是在任何地方都可以使用的。也可以通过<scope> ..... </scope>来设置jar包的作用范围:

                主程序范围有效(main文件夹范围内)

                测试程序范围有效(test文件夹范围内)

                是否参与打包运行(package指令的范围内)

<dependency>
    <groupId>com.itheima</groupId>
    <artifactId>maven-projectB</artifactId>
    <version>1.0-SNAPSHOT</version>
  	<scope>test</scope>
</dependency>

        补充的内容:使用maven创建web项目的时候我们会使用serlvet这个jar包,另外先说一下就是我们在创建的web项目的时候,如果是本地部署我们一般是选择tomcat服务器,如果是基于maven创建的项目可以是使用tomcat的插件。之间没有接触所以没有说这个点,后期写项目的话使用到就写出来,防止自己忘记:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <!-- 设置编码格式 -->
                    <uriEncoding>UTF-8</uriEncoding>
                    <!-- 控制 tomcat 端口号 -->
                    <port>8080</port>
                    <!-- 项目发布到 tomcat 后的名称 -->
                    <!-- 如果写 /,相当于项目发布后的名称为 ROOT -->
                    <!-- 如果写 /abc,相当于项目发布后的名称为 abc -->
                    <path></path>
                </configuration>
            </plugin>
        </plugins>
    </build>

 

        为了后面好操作也可以编辑配置,添加这个插件到配置文件

         然后我们在讲一下这个依赖范围的事情

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <!--如果不加这个依赖范围的话在后面运行访问servlert的时候会报错-->
            <scope>provided</scope>
        </dependency>

        为什么加这个,因为web服务器中有这jar包如果在打包,两个jar包冲突就会报错!

        compile:编译范围,指 A 在编译时依赖 B,此范围为默认依赖范围。编译范围的依赖会用在 编译、测试、运行,由于运行时需要所以编译范围的依赖会被打包。

        provided:provided 依赖只有在当 JDK 或者一个容器已提供该依赖之后才使用, provided 依赖在编译和测试时需要,在运行时不需要,比如:servlet api 被 tomcat 容器提供。

        runtime:runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如:jdbc 的驱动包。由于运行时需要所以 runtime 范围的依赖会被打包。

         test:test 范围依赖 在编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用, 比如:junit。由于运行时不需要所以 test范围依赖不会被打包。

        system:system 范围依赖与 provided 类似,但是你必须显式的提供一个对于本地系统中 JAR 文件的路径,需要指定 systemPath 磁盘路径,system依赖不推荐使用。

scpoe的取值以及作用的范围:

scope主程序测试程序打包(运行)范例
compile(默认)YYYlog4j
test-Y-junit
providedYY-servlet-api
runtime-YYjdbc驱动

7、maven的生命周期:

maven中有三套独立的生命周期:

  1. clean:清理工作

    • clean:移除上一次构建生成的文件

  2. default:核心工作,如:编译,测试,打包,安装,部署等。(太多了)

    • compile:编译项目的源代码

    • test:使用合适的单元测试框架运行测试(junit)

    • package:将编译后的文件打包,比如jar,war等

    • install:安装项目到本地仓库

  3. site:生成报告,发布站点等。

        后面的阶段要依赖前面的阶段,也就是后面的的阶段要运行的话,只要是同一个生命周期的话,前面的所有的阶段都会运行。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Maven是一个Java项目管理工具,而Spring Boot是一个用于快速构建Java应用程序的框架。下面是关于Maven安装配置Spring Boot的步骤: 1. 安装Maven: - 下载Maven二进制文件:在Maven官方网站(https://maven.apache.org)下载最新版本的Maven二进制文件。 - 解压缩文件:将下载的压缩包解压到你选择的目录。 - 配置环境变量:将Maven的bin目录添加到系统的PATH环境变量中。 2. 创建Spring Boot项目: - 使用Maven命令创建项目:打开命令行终端,进入你想要创建项目的目录,执行以下命令: ``` mvn archetype:generate -DgroupId=com.example -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false ``` - 这将创建一个基本的Maven项目结构。 3. 配置Spring Boot依赖: - 打开项目的pom.xml文件,在`<dependencies>`标签中添加Spring Boot相关的依赖,例如: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> ``` - 保存pom.xml文件,Maven会自动下载所需的依赖。 4. 编写Spring Boot应用程序: - 创建一个Java类,作为Spring Boot应用程序的入口点。 - 在该类上添加`@SpringBootApplication`注解,表示这是一个Spring Boot应用程序。 - 编写业务逻辑和处理请求的代码。 5. 构建和运行项目: - 在命令行终端中,进入项目的根目录。 - 执行以下命令构建项目: ``` mvn clean install ``` - 构建成功后,执行以下命令运行项目: ``` mvn spring-boot:run ``` 以上是Maven安装配置Spring Boot的基本步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值