Maven01_快速搭建使用(不涉及内部原理)
Posted 史前蓝熊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven01_快速搭建使用(不涉及内部原理)相关的知识,希望对你有一定的参考价值。
Maven快速搭建使用(不涉及内部原理)
1. Maven是什么?
2. Maven的作用
3. Maven的下载与安装
步骤:
第一步:解压下载好的压缩包
内部文件:
bin:核心运行文件。通过浏览可以发现内部调用了,之前配置的JAVA_HOME。
:OkJHome set "JAVACMD=%JAVA_HOME%\\bin\\java.exe"
boot:类加载器,里面包含一个jar包(Maven的类加载器)
conf:核心配置文件
lib:运行依赖的jar包。
第二步:环境变量配置
Java的已经配置过了,所有只需要配置MAVEN_HOMAE。
-
找到自己安装的目录 例如:C:\\Maven\\apache-maven-3.9.2。
-
系统属性——》环境变量——》系统变量——》新建
-
在Path中添加 %MAVEN_HOME%\\bin
-
一步一步点击确定按钮,退出面板。
-
打开命令提示符,输入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学习二:使用Nexus搭建Maven私服及相关配置