当前位置: 首页 > article >正文

关于maven

一、maven是什么

一个java项目构建工具

二、maven的作用

(1)依赖管理

不同框架整合,互相依赖jar包版本不同,版本不一样,程序跑起来就会报错。用maven管理jar包。

(2)跨平台构建项目

linux服务器上跑起来和我们在windows开发上跑出来的结果不一样。比如getBytes方法运行结果不一样,用maven解决这个问题。

(3)统一开发目录结构统一

不同ide工具,如eclipse、idea、jetbrains开发生成的项目文件结构不一样。用maven统一目录。

maven标准的结构如下:

三、简单了解maven

(1)maven的构成组件

pom、dependency

(2)pom

opm叫项目对象模型。maven把一个项目看成一个对象

(3)dependency

dependency叫依赖管理

(4)构成组件的关系

(5)构建生命周期

四、maven的安装配置

1.下载解压

Maven – 下载 Apache Maven

2.配置环境变量

需要先配置java环境,再配置:

MAVEN_HOME——>E:\apache-maven-3.8.5

PATH添加——>%MAVEN_HOME%\bin

3.测试是否配置好了

打开cmd输入mvn

五、maven的仓库

(1)分类

本地仓库、私服(一般是局域网内的maven仓库,一个公司一个团队的仓库,很多是公司自有不开源的jar包)、中央仓库(maven官方仓库,想要的jar包都有,类似于应用商店)

中央仓库网址:https://mvnrepository.com

(2)三类仓库之间的关系

 

获取jar包过程是,先在本地仓库找,没有就到私服找,私服没有才从中央仓库获取。

(3)配置本地仓库

默认仓库是C:\用户\当前用户名\.m2,存东西最好不要存C盘。要改为D:\myMaven\cangku的办法:

修改apache-maven-3.8.5/conf/settings.xml


把settings标签下的localRepository标签内的属性改一下,改成下面:

 <localRepository>D:\myMaven\cangku</localRepository>

(4)配置中央仓库

目的:配置国内镜像,加速访问中央仓库

原因:中央仓库站点在国外,下载慢,所以要加速

配置方法:修改apache-maven-3.8.5/conf/settings.xml在mirrors标签里面填加下面内容

<!--配置具体的仓库的下载镜像-->

<mirror>
<!--此镜像的唯一标识符,用来区分不同的mirror元素-->
<id>nexus-aliyun</id>
<!--对哪种仓库进行镜像,简单说就是替代哪个仓库-->
<mirrorOf>central</mirrorOf>
<!--镜像名称-->
<name>Nexus aliyun</name>
<!--镜像URL-->
<url>http: //maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

六、maven的坐标

(1)坐标是什么

描述仓库中资源的位置

(2)坐标的作用

maven会根据坐标找到并下载(如果不在本地),对应的资源

(3)坐标包含元素

groupid、artifactid、version

groupid:所有者团队。一般是域名反写,如:com.baidu

artifactid:项目名

version:当前项目版本号

(4)坐标的写法

比如,我想知道junit的坐标写法 

找到想要的版本,点进去

复制即可

七、第一个maven项目(手工方式创建)

(1)创建项目目录结构

先创建一个“porject-helloWorld”的项目根文件夹,然后在porject-helloWorld下创建下图的项目目录结构

(2)编写代码

main>java>com>eCorp>HelloWorld.java


package com.eCorp;


import java.lang.String;

public class HelloWorld{
public String sayHello(){
return "hello world";
}
}

test>java>TestDemo.java


import com.eCorp.HelloWorld;
import org.junit.Assert;
import org.junit.Test;

public class TestDemo{
    @Test
public void testHelloWorld(){
HelloWorld helloWorld =new HelloWorld();
Assert.assertEquals("hello world", helloWorld.sayHello());
}

}

(3)添加pom.xml

办法:找一个pom.xml文件模板,然后进行修改即可

步骤:

1.用winrar随便打开一个E:\apache-maven-3.8.5\lib下的jar,然后返回上级目录,搜索pom.xml

 结果会有很多pom.xml,随便找一个打开复制过来

2.在项目根文件夹下创建pom.xml,把复制内容拷贝过来

3.修改pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>  <!--pom模型版本-->
 
  <groupId>com.eCorp</groupId>

  <name>project-helloWorld</name>
  <artifactId>project-helloWorld</artifactId>
  <version>1.0</version>
  <packaging>jar</packaging>         <!--生成结果保存形式-->

 
 
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
 
  <dependencies>
    <dependency>
    <!--在中央仓库搜索junit,然后把坐标写法复制过来 -->
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

(4)构建maven项目

第一步:编译

步骤:

打开cmd输入:cd 项目根文件夹路径

然后输入:mvn compile

编译报错:

[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] 不再支持源选项 5。请使用 7 或更高版本。
[ERROR] 不再支持目标选项 5。请使用 7 或更高版本。
[INFO] 2 errors

产生原因:maven默认是使用jdk1.4编译的。比本地安装jdk版本低就会报错

解决办法:

比如我本地安装的是jdk17,就把下面代码放到E:\apache-maven-3.8.5\conf\pom.xml里的  <profiles>标签里面

<profile>  
     <id>jdk-17</id>  
     <activation>  
         <activeByDefault>true</activeByDefault>  
         <jdk>17</jdk>  
     </activation>
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <maven.compiler.source>17</maven.compiler.source>  
         <maven.compiler.target>17</maven.compiler.target>   
     </properties>   
</profile>

编译结果:编译成功会在项目根文件夹下生成一个叫target的文件,编译的.class字节码文件都在里面

第二步(可选):清理编译结果

mvn clean        //会删除target文件

第三步:测试

mvn test           //执行test测试文件夹里面的java代码,并生成测试报告

测试报告—基本信息位置:项目名\target\surefire-reports\TestDemo.txt

测试报告—详细信息位置:项目名\target\surefire-reports\TEST-TestDemo.xml

第四步:打包

mvn package       //打包项目成jar文件,在target下生成project-helloWorld-1.0.jar

第五步:把打包结果放到本地仓库

mvn install         //存放位置:本地仓库文件夹\com\eCorp<groupId>】\project-helloWorld<artifactId>】\1.0<version>】\project-helloWorld-1.0.jar


http://www.kler.cn/news/18393.html

相关文章:

  • Hive为什么要分桶?
  • 【数据结构】Treap树堆
  • django:django2配置websocket
  • 删除的文件怎样恢复?实用的方法
  • TomcatServletHTTP
  • 【Linux】项目自动化构建工具 —— make/Makefile
  • 【Java|golang】1419. 数青蛙
  • 操作系统第二章——进程与线程(中)
  • SpringCloud_Config配置中心和Bus消息总线和Stream消息驱动
  • 远程桌面连接是什么?如何开启远程桌面连接详细教程
  • 不用花一分钱!!!获得一个自己的网页版chatGPT
  • 【前端面试题】深拷贝的终极实现
  • Mysql 中left join时 on、and、where区别
  • Redis高可用系列——Set类型底层详解
  • 云计算实战应用案例精讲-【深度学习】多模态融合情感分析(论文篇二)
  • 基于simulink进行音频波束成形系统的多核仿真
  • 项目实战-redis
  • SpringBoot——pom文件:parent
  • 通过计算系统稳定性比较迭代次数
  • Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCVSharp实现图像的直方图算法增强(C#)
  • uboot下内存操作mw和md命令详解
  • 如何防御流量攻击
  • 写PPT的步骤
  • Shell 脚本传递参数的两种方式:位置传参与指令式传参
  • MySQL---基本操作DDL(SQL特点,数据类型,对数据库的操作,对表的操作)
  • java面试题总结
  • 《ChatGPT Prompt Engineering for Developers》课程中文版系列
  • 学习【gRPC C++简单示例及代码】
  • <微服务架构项目>权限控制案例分享
  • 技术转管理,先来试试管理好项目