Maven

我为什么要学习这个技术?

  1. 在]avaweb开发中,需要使用大量的jar包,我们手动去导入
  2. 如何能够让一个东西自动帮我导入和配置这个jar包。由此,Maven诞生了!

Maven项目架构管理工具

我们目前用来就是方便导入jar包的!

Maven的核心思想:约定大于配置

  • 有约束,不要去违反。

Maven会规定好你该如何去编写我们的ava代码,必须要按照这个规范来;

下载安装Maven

官网:https://maven.apache.org/

image

下载完成后,解压即可;

配置环境变量

在我们的系统环境变量中
配置如下配置:

  • M2_HOME maven目录下的bin目录
  • MAVEN HOME maven的目录
  • 在系统的path中配置 %MAVEN_HOME%/bin

image

小问题:到这里验证出现问题

image

是因为高版本的JDK如JDK17免安装版没有JRE,配置好环境变量Maven识别不出JDK的位置导致的报错。

找到maven的bin目录,右击mvn.cmd点击编辑

在首行加入jdk路径

set JAVA_HOME=D:\software\java\jdk1.8

image

阿里云镜像

  • 镜像:mirrors
    • 作用:加速我们的下载
  • 国内建议使用阿里云的镜像

第一种

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

第二种

<mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>

mirrorOf的好处:

<mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
如果不加 mirrorOf 这一行,默认所有的依赖都会去阿里云仓库下载,加上后jeecg的依赖包就可以从jeecg私服下载了。

//mirrorOf 可以如果是 *,!jeecg,!jeecg-snapshots 的话,作用是对于jeecg有关的jar包到jeecg仓库中下载,//否则如果是 central 的话,则所有依赖都是到阿里云仓库下载啰
//jeeccg 如果加载jar包失败,可能是jeecg官网进不去,那就直接将mirrorOf使用central,全部使用阿里云的仓库下载

本地仓库

在本地的仓库,远程仓库;

建立一个本地仓库:localRepository

image

在IDEA中使用Maven

  1. 启动IDEA

  2. 创建一个Maven

  3. 创建mavenWeb项目

    image

  4. 观察maven仓库多了很多东西

  5. IDEA中Maven设置

    image
    )

  6. 到此,Maven在IDEA中的配置和使用就OK了!

在IDEA中配置tomcat

image

为什么会有这个问题:我们访问一个网站,需要指定一个文件夹名字;

image

pom文件

Maven的高级之处在于,他会帮忙导入这个JAR包所依频的其他jar

image

<!--Maven版本和头文件-->
<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

<!--  这里就是我们刚才配置的GAV-->
  <groupId>org.example</groupId>
  <artifactId>JavaEE</artifactId>
<!--  Package:项目的打包方式
      jar:java应用
      war:JavaWeb应用-->
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>JavaEE Maven Webapp</name>
  <url>http://maven.apache.org</url>
<!--  配置-->
  <properties/>

<!--  项目依赖-->
  <dependencies>
<!--    具体依赖的jar包配置文件-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

<!--  项目构建的东西-->
  <build>
    <finalName>JavaEE</finalName>
      <!--  在build中配置resources,来防止我们资源导出失败的问题-->
      <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
  </build>
</project>

maven由于他的约定大于配置,我们之后可以能遇到我们写的配置文件,无法被导出或者生效的问题

解决方案:

<build>
      <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
</build>

相关问题

  1. IDEA中每次都要重复配置Maven

    在项目外面打开全局配置

    image

  2. maven默认web项目中的web.xml版本问题

    IDEA中和tomcat中版本尽量一致

    image

    image

  3. IDEA中没有新建servlet选项

    • 法一,手动添加这两个jar包,然后点击apply

      image

    • 法二,用maven导入jar包

      image

      代码

      <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
      </dependency>
      
posted @ 2025-02-07 22:52  韩熙隐ario  阅读(24)  评论(0)    收藏  举报