Maven01_快速搭建使用(不涉及内部原理)

Posted 史前蓝熊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven01_快速搭建使用(不涉及内部原理)相关的知识,希望对你有一定的参考价值。

Maven快速搭建使用(不涉及内部原理)

黑马程序员Maven全套教程

1. Maven是什么?

2. Maven的作用

3. Maven的下载与安装

官网:Maven – Download Apache Maven

步骤:

第一步:解压下载好的压缩包

内部文件:

bin:核心运行文件。通过浏览可以发现内部调用了,之前配置的JAVA_HOME。

:OkJHome
set "JAVACMD=%JAVA_HOME%\\bin\\java.exe"

boot:类加载器,里面包含一个jar包(Maven的类加载器)

conf:核心配置文件

lib:运行依赖的jar包。

第二步:环境变量配置

Java的已经配置过了,所有只需要配置MAVEN_HOMAE。

  1. 找到自己安装的目录 例如:C:\\Maven\\apache-maven-3.9.2。

  2. 系统属性——》环境变量——》系统变量——》新建

  3. 在Path中添加 %MAVEN_HOME%\\bin

  4. 一步一步点击确定按钮,退出面板。

  5. 打开命令提示符,输入mvn,显示下方信息,表示配置成功。

4. Maven的基础概念

4.1 仓库

用于存储资源,包含各种jar包。

  • 仓库分类:
    • 本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
    • 远程仓库:非本机电脑上的仓库,为本地仓库提供资源
      • 中央仓库:Maven团队维护,存储所有资源的仓库
      • 私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源
  • 私服的作用:
    • 保存具有版权的资源,包含购买或自主研发的iar(中央仓库中的iar都是开源的,不能存储具有版权的资源)
    • 一定范围内共享资源,仅对内部开放,不对外共享

4.2 坐标

  • 什么是坐标?

    Maven中的坐标用于描述仓库中资源的位置

    https://repo1.maven.org/maven2/

    搞Java开发,记一辈子:Maven Repository

  • Maven坐标主要组成:

    • groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如:org.mybatis)

    • artifactld:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)

    • version:定义当前项目版本号

    • packaging:定义该项目的打包方式

  • Maven坐标的作用:

    使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成

5. Maven本地仓库配置

  • 打开apache-maven-3.9.2\\conf 目录下的setting.xml文件(找到下面字段):

      <!-- localRepository
       | The path to the local repository maven will use to store artifacts.
       |
       | Default: $user.home/.m2/repository
      <localRepository>/path/to/local/repo</localRepository>
      -->
    
  • 可以发现,在默认情况下 仓库位于 $user.home/.m2/repository ,位于C盘,因为仓库会随着使用不断地变大,存在系统盘下,很不方便,所有一般将它放在其他的地方。例如:D:\\maven\\repository

    <localRepository>D:\\maven\\repository</localRepository>
    

    之后,下载资源,就都存放在D:\\maven\\repository 中。

6. Maven远程仓库配置

默认的下载路径部署在国外,下载速度很慢,所有需要使用镜像来加快下载速度。

  • 还是在apache-maven-3.9.2\\conf 目录下的setting.xml文件中,在mirrors 标签里面添加:

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

7. 全局setting与用户setting区别

  • 全局setting定义了当前计算器中Maven的公共配置
  • 用户setting定义了当前用户的配置

到这里就可以在Spring框架里面应用Maven了。

初学springboot, 如何快速使用maven搭建springboot项目呢

 

    搭建Springboot 推荐使用maven, 但也可以不使用maven,用正常的java工程。

  

  •   在MyEclipse上新建一个maven工程

  技术分享

  •   点击Next,选择create a simple project

  技术分享

  • 点击Next,输入下图所示

  技术分享

  • 点击finish,稍等一下会,项目就构建完成。目录结构如下所示:

  技术分享

  • 上图中的pom.xml提示错误,点开pom.xml,切换至:Dependencies视图,点击红色错误,弹出提示框,点击+号。完成后pom.xml将不会报错。

  技术分享

  • pom.xml增加继承父包
<!-- 继承父包 -->
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.2.RELEASE</version>
 </parent>
  • pom.xml增加依赖关系
    <dependencies>
            <!-- spring-boot的web启动的jar包 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
  • pom.xml 增加热部署,可选
            <!-- maven 插件 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>springloaded</artifactId>
                        <version>1.2.5.RELEASE</version>
                    </dependency>
                </dependencies>
            </plugin>
  • 完整的pom.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>org.springboot</groupId>
    <artifactId>SpringBoot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    
    <!-- 继承父包 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.2.RELEASE</version>
    </parent>
    
    <dependencies>
            <!-- spring-boot的web启动的jar包 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
      
    <build>
        <plugins>
            <!-- 配置java版本 -->
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <!-- 配置war版本 -->
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <version>3.1</version>
                </configuration>
            </plugin>
            <!-- maven 插件 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>springloaded</artifactId>
                        <version>1.2.5.RELEASE</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
    <repositories>  
        <repository>  
            <id>spring-snapshots</id>  
            <url>http://repo.spring.io/snapshot</url>  
            <snapshots><enabled>true</enabled></snapshots>  
        </repository>  
        <repository>  
            <id>spring-milestones</id>  
            <url>http://repo.spring.io/milestone</url>  
        </repository>  
    </repositories>  
    <pluginRepositories>  
        <pluginRepository>  
            <id>spring-snapshots</id>  
            <url>http://repo.spring.io/snapshot</url>  
        </pluginRepository>  
        <pluginRepository>  
            <id>spring-milestones</id>  
            <url>http://repo.spring.io/milestone</url>  
        </pluginRepository>  
    </pluginRepositories>  
</project>

 

  •   如果你希望他是web项目的话,选择项目-右键-Properties-MyEclipse-Project fcets

  技术分享

  • 点击上图的Further configuration available,输入路径src/main/webapp

  技术分享

  • 点击OK,在点击apply,点击OK,目录发生变化,如下图所示

  技术分享

  • 下面接着,如何将jar包应用雨lib中呢? 选择项目右键-properties-MyEclipse-Deployment Assembly

  技术分享

  • 点击add按钮,选择java build path Entries

  技术分享

  • 点击next,选择Maven Dependencies,点击finsh

  技术分享

  • 点击apply,点击ok,完成jar包的应用,此时srping boot 的web工程基本已部署完毕,下面来简单写一个列子
  • 新建一个包含main方法的类,此地方起名用Application
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        SpringApplication.run(Demo.class, args);
    }

}
  • 再创建一个不需要main方法的demo类
@RestController
@EnableAutoConfiguration
public class Demo {

    @RequestMapping("/")
    String helloWord() {
        return "helloWorld";
    }
}
  • 此时小列子已经写完了,由于spring boot 内置了servlet容器,所以,我们可以直接运行application类,选择项目-run as -- java application,我们将开到下图信息,这样表示已经完成。

技术分享

  • 上图表示已经成功运行,下面我们来访问一下,打开localhost:8080,将会出现hello word信息。

技术分享

  • 到此,spring boot 通过maven搭建已经完成。

 

以上是关于Maven01_快速搭建使用(不涉及内部原理)的主要内容,如果未能解决你的问题,请参考以下文章

Maven快速创建SpringMVC web工程详解

使用nexus搭建maven私服

MySQL 不停机不锁表主从搭建原理实战

Maven学习二:使用Nexus搭建Maven私服及相关配置

springcloud01- SpringCloud快速搭建

初学springboot, 如何快速使用maven搭建springboot项目呢