admin管理员组文章数量:1631017
文章目录
- 1 maven简介
- 1.1 依赖管理
- 1.2 项目构建
- 1.3 maven核心概念
- 2 maven安装
- 2.1 下载,解压,配置
- 2.2 配置文件
- 2.2.1 本地仓库配置
- 2.2.2 阿里云镜像仓库
- 3 仓库
- 3.1 本地仓库
- 3.2 远程仓库
- 3.2.1 中央仓库
- 3.2.2 镜像私服
- 3.3 mvn坐标
- 4 maven常用命令
- 5 maven依赖
- 实例
1 maven简介
Maven 是 Apache 软件基金会组织维护的一款自动化构建工具, 专注服务于 Java 平台的项目构建和依赖管理。
所用:
- 依赖管理
- 项目构建
1.1 依赖管理
- 添加junit依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>compile</scope>
</dependency>
- 添加完成后右键重新加载maven
1.2 项目构建
- 清理:删除以前的编译结果,为重新编译做好准备。
- 编译:将 Java 源程序编译为字节码文件。
- 测试:针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性。
- 报告:在每一次测试后以标准的格式记录和展示测试结果。
- 打包:将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。 Java 工程对应 jar 包, Web工程对应 war 包。
- 安装:在 Maven 环境下特指将打包的结果——jar 包或 war 包安装到本地仓库中。
- 部署:将打包的结果部署到远程仓库或将 war 包部署到服务器上运行。
创建的构建工具
- ant
- maven
- Gradle
1.3 maven核心概念
Maven 能够实现自动化构建是和它的内部原理分不开的, 这里我们从 Maven 的九个核心概念入手,看看 Maven 是如何实现自动化构建的
- POM
- 约定的目录结构
- 坐标
- 依赖管理
- 仓库管理
- 生命周期
- 插件和目标
- 继承
2 maven安装
2.1 下载,解压,配置
1.下载
- 官网下载
2.解压
3.配置maven的环境变量
- M2_HOME
- PATH
- 测试mvn是否安装完成
2.2 配置文件
maven配置文件有2个
- 全局配置文件d:\java\apache-maven-3.6.3\conf\settings.xml,安装目录config下
- 用户配置文件~/.m2/settings.xml,这个配置文件开始不存在,需要自己创建.m2,拷贝配置文件
idea中默认使用用户配置文件,所以一般配置用户配置文件,这样idea就不需要在更改
2.2.1 本地仓库配置
本地仓库默认的路径
- linux:~/.m2/repository
- windows:c:\Users\Administrator.m2\repository\
自定本地仓库:
修改~/.m2/setting.xml
<localRepository>d:\java\mvn_repo</localRepository>
2.2.2 阿里云镜像仓库
- 避免去中央仓库访问构件,提高访问效率
- ~/.m2/setting.xml
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
3 仓库
- maven的仓库可以分为本地仓库和远程仓库
3.1 本地仓库
本地仓库相当于一个缓存,在电脑上是一个文件夹,我们可以设置这个文件夹的路径(具体怎么设置会在下面的配置体现),工程第一次需要某种jar包时,会从远程仓库(互联网)下载并保存到本地仓库中(在程序员的电脑上),当第二次使用时,不需要去远程仓库下载,会先去本地仓库中找,如果找不到才会去远程仓库上下载。
默认情况下,每个用户在自己的用户目录下都有一个路径名为 .m2/respository/ 的仓库目录。
3.2 远程仓库
- 远程仓库中分为中央仓库和私服
3.2.1 中央仓库
中央仓库中的jar包由专业团队(Maven团队)维护,中央仓库中存放了全世界大多数流行的开源软件的jar包,是Maven默认的远程仓库。
http://mvnrepository/:搜索中央仓库的中的依赖构件
要浏览中央仓库的内容,Maven 社区提供了一个 URL:http://search.Maven/#browse。使用这个仓库,开发人员可以搜索所有可以获取的代码库。
3.2.2 镜像私服
私服是另一种特殊的远程仓库,为了节省带宽和时间,应该在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。内部的项目还能部署到私服上供其他项目使用。除了中央仓库和私服,还有很多其他公开的远程仓库,常见的有java Maven库(http://download.java/maven/2/)和jboss Maven库(http://repository.jboss/maven2/)等
- 为了提高访问远程仓库的效率可以在特定的国家区域搭建的中央仓库的镜像私服
3.3 mvn坐标
- maven项目的坐标(gav坐标),在maven仓库定位构件使用groupId,artifactiId,version坐标来进行定位。
<groupId>com.kdx.demo</groupId>
<artifactId>hello-maven</artifactId>
<version>1.0</version>
- 执行完mvn install本地仓库中相应的坐标下,产生jar
4 maven常用命令
命令 | 说明 |
---|---|
mvn compile | 编译程序,在target中编译成.class |
mvn clean | 删除target,清理输出目录 |
mvn test | 执行测试,注意测试失败,不能打包 |
mvn package | 打包成jar文件,输出到target |
mvn install | 部署jar文件,部署到本地仓库 |
mvn deploy | 部署jar包,部署到远程仓库 |
mvn clean install | 先清理,然后部署 |
mvn clean install -Dmaven.test.skip=true | 忽略测试,直接部署 |
5 maven依赖
- idea中的可以是一个project中有多个module
实例
1.创建空项目
- 配置项目默认的JDK
2.在maven_learn下创建maven_first项目
- pom.xml配置
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
- 创建HelloFirst类
public class HelloFirst {
public String sayHello() {
return "hello first";
}
}
ctrl+shift+t
生成HelloFirstTest类,并编写代码如下
public class HelloFirstTest {
HelloFirst helloFirst = new HelloFirst();
@Test
public void sayHello() {
Assert.assertTrue("hello first".equals(helloFirst.sayHello()));
}
}
- 用mvn install或者通过如下图片中点击
install
将maven_first部署到本地仓库
3.在maven_learn下创建maven_second项目
- pom.xml配置,引入maven_first依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.kdx.demo</groupId>
<artifactId>maven_first</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
- 创建HelloSecond类
public class HelloSecond {
HelloFirst helloFirst = new HelloFirst();
public String sayHello() {
return helloFirst.sayHello() + ":second"; //hello first:second
}
}
-
ctrl+shift+t
生成HelloSecondTest类,并编写代码如下
public class HelloSecondTest {
HelloSecond helloSecond = new HelloSecond();
@Test
public void sayHello() {
Assert.assertTrue("hello first:second".equals(helloSecond.sayHello()));
}
}
- 运行测试,测试通过
版权声明:本文标题:maven环境配置 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729085123a1185631.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论