Java研学-Maven基础

这篇具有很好参考价值的文章主要介绍了Java研学-Maven基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 概述

  Maven是一个跨平台的项目管理工具,主要用于基于 Java 平台的项目(Maven 底层为Java)构建、依赖包管理和项目信息管理,只需要运行一条简单的命令,就能高效的完成构建动作
  Maven 能提供一种项目的依赖配置,配置好的项目,Maven 能自动的从 Maven 的中央仓库中下载并管理项目依赖的 jar 包,并且还能自动的管理这些 jar 包依赖的其他 jar 包,同时提供了一种标准的项目目录结构(约定大于配置)

二 安装

1 查看JDK版本

  Maven 版本对 JDK 有要求

// 命令行输入,查询安装 JDK 是否正确并查询安装的版本
java  -version

// 没有配置的话,则进行jdk配置
1.添加 JAVA_HOME,需要指向 JDK 安装目录;
2.添加 PATH,添加 %JAVA_HOME%\bin。

2 安装 Maven

  于官网下载对应的压缩包,将apache-maven-x.x.x-bin.zip 解压到目录中,目录路径不要有空格和中文。

3 配置环境变量

  ① 配置环境变量,MAVEN_HOME,指向 maven 的根目录;
  ② 配置环境变量 Path,将 %MAVEN_HOME%\bin 追加到 Path 中。

4 验证 Maven

// 命令行窗口执行,查看版本信息
mvn –v

三 常用命令

mvn compile:编译,在项目下生成一个target目录,里面是编译后的.class文件
mvn clean:清除,将编译后的target目录删除
mvn test:测试,会在项目下生成源码编译后的文件以及测试文件编译后的文件
mvn package:打包,执行项目的编译测试命令,并且将项目打包成jar 或war
mvn install:打包,本地仓库也放一份.执行项目的编译 测试  打包操作。

四 Maven 设置

1 本地仓库

  运行 Maven 命令会在用户目录生成一个 .m2 目录,该目录下有个目录名 repository,也就是本地仓库,用于存放一些下载的 jar 文件。本地仓库默认位置在用户目录/.m2/repository(不建议放在系统盘)
  ① 将 Maven 根目录的 conf/settings.xml 拷贝到 .m2 中,作为个人 Maven 配置文件;
  ② 在 settings.xml 文件中 修改本地仓库的位置。

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <!-- 本地仓库地址 -->
    <localRepository>本地仓库目录</localRepository>
</settings>

2 配置中央仓库镜像

  官方中央仓库服务器在国外,可能会下载失败,为减少下载失败的概率配置一个中央仓库的镜像

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <!-- 本地仓库地址 -->
    <localRepository>你本地仓库的目录位置</localRepository>
    <mirrors>
        <!-- 阿里仓库镜像 -->
        <mirror>
     	 <id>aliyunId</id>
    	  <mirrorOf>central</mirrorOf>
   	 	  <name>aliyun maven</name>
    	  <url>https://maven.aliyun.com/repository/central</url>
    </mirror>
    </mirrors>
</settings>

五 IDEA 中 Maven 的配置

  于settings中进行配置
Java研学-Maven基础,# Java研学,java,maven

六 基于Maven的JavaSE项目

1 创建项目

Java研学-Maven基础,# Java研学,java,maven

2 项目信息

Java研学-Maven基础,# Java研学,java,maven

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>
    <groupId>cn.tj</groupId>
    <artifactId>play_maven</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
</project>

4 添加依赖(索引)

  索引指为本地仓库的依赖建立索引,本地仓库存在依赖,在添加时可以搜索出来,便于在 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>
    <groupId>cn.tj</groupId>
    <artifactId>play_maven</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--添加依赖信息名称版本作用域-->
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.23</version>
            <scope>runtime</scope>
        </dependency>
    </dependencies>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
</project>

  Maven刷新,显示依赖信息,表示添加成功
Java研学-Maven基础,# Java研学,java,maven

5 添加依赖(网站拷贝)

  于网站搜索栏中查询所需依赖,确认版本,拷贝配置到pom中
Java研学-Maven基础,# Java研学,java,maven

6 Maven命令

Java研学-Maven基础,# Java研学,java,maven

七 基于Maven的JavaWeb项目

1 创建项目

 同上

2 修改项目打包方式

<?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>
    <groupId>cn.tj</groupId>
    <artifactId>play_maven</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--修改打包方式-->
    <packaging>war</packaging>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
</project>

3 添加 web.xml

  于项目的 main 目录下创建 webapp/WEB-INF/web.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
</web-app>

4 修改项目编译运行版本

<?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>
    <groupId>cn.tj</groupId>
    <artifactId>play_maven</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--修改打包方式-->
    <packaging>war</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>16</maven.compiler.source>
        <maven.compiler.target>16</maven.compiler.target>
    </properties>
</project>

5 添加依赖

    <!--添加依赖信息名称版本作用域-->
    <dependencies>
        <!-- 配置 servlet-api 依赖 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

6 编写 Servlet 与 JSP

Hi.java

@WebServlet("/Hi")
public class Hi extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setAttribute("msg", "Play Maven");
        req.getRequestDispatcher("/WEB-INF/hi.jsp").forward(req, resp);
    }
}

hi.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Maven</title>
</head>
<body>
${msg}
</body>
</html>

7 配置 Tomcat 插件

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <!--端口,路径,GET 方式乱码处理-->
                <configuration>
                    <port>80</port>
                    <path>/</path>
                    <uriEncoding>UTF-8</uriEncoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

8 Tomcat 启动

Java研学-Maven基础,# Java研学,java,maven

八 细节

1 坐标

  标识项目或者依赖在仓库中的位置

groupId:项目名称,一般为公司或组织域名倒写
artifactId:项目中 Maven 项目/模块名称,区分不同的项目
version:项目版本,区分同一个项目的不同时期

2 依赖

  配置项目所要依赖的 jar,于 pom.xml 中 dependency 元素配置,通过坐标先从本地仓库找,没有再从远程仓库找。
① scope
  Maven 在编译,测试,运行时,各有一套 classpath。scope 表明该依赖的项目和三个 classpath 的关系,即表示依赖什么阶段起作用,什么阶段不起作用。
Java研学-Maven基础,# Java研学,java,maven
  scope 主要可选值:
  compile:默认,适用于所有阶段,随着项目一起发布,编译,测试,运行时都有效
  provided:编译和测试时使用;如 servlet-api.jar lombok,不需打包,容器会提供
  runtime:测试和运行时使用,用于接口和实现分离,如 jdbc 具体驱动实现 mysql 驱动
  test:测试时使用,不会随项目发布,如 junit
② 传递性
  Maven 依赖具有传递性,如 A -> B,B -> C, A 间接依赖于 C,其中 A 对于 B 是第一直接依赖,B 对于 C 是第二直接依赖,C 为 A 的传递性依赖,由此解决依赖繁琐的问题。文章来源地址https://www.toymoban.com/news/detail-799172.html

到了这里,关于Java研学-Maven基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学习大数据,所需要的java(Maven)基础(2)

    以对Spring的jar包依赖为例:Spring的每一个版本中都包含spring-context,springmvc等jar包。我们应该导入版本一致的Spring jar包,而不是使用4.0.0的spring-context的同时使用4.1.1的springmvc。 问题是如果我们想要将这些jar包的版本统一升级为4.1.1,是不是要手动一个个修改呢?显然,我们有

    2024年04月29日
    浏览(34)
  • 学习大数据,所需要的java(Maven)基础(1)

    maven是干什么用,的我们先通过企业开发中的时间需求来看一看那些方面是我们技术不足。 java项目,每个项目需要复制一份jar包,Maven后只在本地仓库中保存一份 java项目,自己去网上找jar包,费劲心血找的jar包里面有的时候并没有你需要的哪个类。 Maven就会自动从仓库进行

    2024年04月26日
    浏览(42)
  • 【Maven】Maven入门,Java界的Anaconda!

    官方文档:Apache Maven 的本质是一个软件项目管理和理解工具。基于项目对象模型 (Project Object Model,POM) 的概念,Maven 可以从一条中心信息管理项目的构建、报告和文档。 就像Python和Anaconda的关系🤭 可以帮助Javer完成构建、文档生成、报告、依赖、发布、分发等等功能! 可以

    2024年02月08日
    浏览(52)
  • Java Maven项目推送到 Maven 中央仓库

    当需要在 sonatype 认证 com.xxx 命名空间时,需要将 @.xxx.com 配置域名解析。 记录类型:TXT 文本内容:验证的 key。 GPG 下载地址:https://www.gnupg.org/download/index.html Mac 可以使用 brew install gpg 直接安装 使用方式可参考: https://central.sonatype.org/publish/requirements/gpg/ https://www.jianshu.com/

    2024年04月13日
    浏览(31)
  • 【java】【maven】【高级】MAVEN聚合继承属性等

    目录 1、模块开发与设计 2、聚合 2、继承 3、属性 4、版本管理 5、资源配置 6、多环境配置 7、多环境开发配置 8、跳过测试 9、私服  前言:maven的高级使用包含分模块开发与设计、聚合、继承、属性、版本管理、资源配置、多环境配置、多环境开发配置、跳过测试、私服  

    2024年02月13日
    浏览(35)
  • Maven(四):Maven的使用——java工程与Web工程

    本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远! 使用 mvn archetype:generate 命令生成 Web 工程时,需要使用一个专门的 archetype 。这个专门生成 Web 工程

    2023年04月19日
    浏览(40)
  • 【Java——maven的使用与idea创建maven项目,导入maven依赖(jar包)】

    1.1、打开maven安装路径下的conf文件夹,找到里面的settings.xml文件,(如果使用的是maven安装程序安装的maven,则settings.xml文件和本地仓库位置在默认位置:C:Userspenglei.m2)将下面的代码复制里面,切记不要放到注释里面 1.2、maven项目全局默认配置jdk版本信息,将下面的代码复制

    2024年02月08日
    浏览(86)
  • java maven学习

    我本身是个前端,目前Java都算是自学,为了直接能做Java服务端开发,我其实很多基础都没学,直接上项目做东西。现在来补充常用maven。避免以后出现低级错误。 Maven 的详细解释和安装_tengyuxin的博客-CSDN博客 1. 检查网络 2. 检查maven配置是否正常 重点看maven的 setting配置文件

    2023年04月17日
    浏览(35)
  • java之maven专题

    1、idea配置maven https://blog.csdn.net/hanmingjun/article/details/129977880 2、阿里云补充缺少的jar包 到官方下载好jar包到这里上传 maven中配置跳过单元测试 https://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-tests.html

    2024年02月16日
    浏览(30)
  • Java——《面试题——maven篇》

    全文章节 Java——《面试题——基础篇》 Java——《面试题——JVM篇》 Java——《面试题——多线程并发篇》 Java——《面试题——Spring篇》 Java——《面试题——SpringBoot篇》 Java——《面试题——MySQL篇》​​​​​​ Java——《面试题——SpringCloud》 Java——《面试题——Dob

    2024年02月11日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包