Maven★★★★★

声明

本文部分内容参考自其他作者原创文章,仅供个人学习留档,特此声明

参考文章链接
(1条消息) B站---【狂神说Java】JavaWeb入门到实战---笔记_夜里的雨的博客-CSDN博客_狂神说java笔记

(1条消息) maven本地仓库配置_木楚的博客-CSDN博客_maven配置本地仓库

(1条消息) IDEA Maven Helper插件(详细使用教程)_程序之大道至简的博客-CSDN博客_idea maven插件

(1条消息) 在IDEA中使用Maven详细教程_Blanche117的博客-CSDN博客_idea maven

(1条消息) 解决 IDEA 每次创建新的maven项目都需要重新配置的问题_泡锅的博客-CSDN博客_idea每次创建新项目都得重新配置?

(3条消息) Idea上配置Smart Tomcat_秋山澪与折木奉太郎的爱的博客-CSDN博客_smarttomcat

(3条消息) Idea查看Maven依赖树_拉丁卡特的博客-CSDN博客_idea maven 依赖树

【狂神说Java】JavaWeb入门到实战_哔哩哔哩_bilibili

Maven★★★★★

1、Maven项目架构管理工具

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

  1. 在Javaweb开发中,需要使用大量的jar包,我们手动去导入;
  2. 如何能够让一个东西自动帮我导入和配置这个jar包。

由此,Maven诞生了!

我们目前用来就是方便导入jar包的!Maven的核心思想:约定大于配置

有约束,不要去违反。Maven会规定好你该如何去编写我们Java代码,必须要按照这个规范来

2、下载安装Maven

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

下载完成后,解压到下图位置


3、配置环境变量

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

  • M2_HOME maven目录下的bin目录

  • MAVEN_HOME maven的目录

  • 在系统的path中配置%MAVEN_HOME%\bin

  • 测试Maven是否安装成功,保证配置完毕


4、阿里云镜像

  • 镜像:mirrors

  • 作用:加速我们的下载

  • 国内建议使用阿里云的镜像

  • 修改步骤

    • 修改这里

    • 修改mirrors框里边的mirror

      修改为

      <mirror>
      	<id>aliyunmaven</id>
      	<mirrorOf>*</mirrorOf>
      	<name>阿里云公共仓库</name>
      	<url>https://maven.aliyun.com/repository/public</url>
      </mirror>
      

5、本地仓库

使用 Maven 给我们带来的最直接的好处,就是统一管理jar 包,那么这些 jar 包存放在哪里呢?它们就在本地仓库中,默认地址位于 C:\Users\用户名.m2 目录下(当然也可以修改这个默认地址)。

实际上我们可以将本地仓库理解“缓存”,目的是存放jar包。开发项目时项目首先会从本地仓库中获取 jar 包,当无法获取指定 jar 包的时候,本地仓库会从 远程仓库(或 中央仓库) 中下载 jar 包,并“缓存”到本地仓库中以备将来使用。

远程仓库(中央仓库)是 Maven 官方提供的,可通过 http://search.maven.org/ 来访问。这样一来,本地仓库会随着项目的积累越来越大。既然 Maven 安装了,那么本地仓库也就有了,默认路径在我们C盘目录下。这里不建议放到C盘,那么如何修改这个默认配置呢。

  • 打开maven安装目录\conf\setting.xml文件

  • 如下图所示修改路径

  • 最后检查一下配置是否正确。输入命令:mvn help:system

    最后如果没有报错就说明配置好了。

    如下图所示maven仓库的文件夹下会有很多的文件包自动出来。这些就是maven从中央仓库下载下来的文件


6、在IDEA中使用Maven(疑问已解决)

(1条消息) 在IDEA中使用Maven详细教程_Blanche117的博客-CSDN博客_idea maven

1.IDEA创建Maven项目

接下来是创建流程

在这里我用的是自己安装的maven,需要配置(maven的配置看上边链接内容,后边会讲)

如上图所示创建完成,下载的文件都存放在了maven仓库里边

E:\environment\Maven\apache-maven-3.8.5\maven-repo


2.Maven设置(存疑,已解决)

遇到一个很烦人的问题:总是还原回默认的IDEA 自带的 maven,导致每次新建maven都把文件下载到idea自带的maven库里边去了

这是为什么呢?

我们设置maven配置时,是通过 File -> Settings... -> Build,Execution,Deployment -> Build Tools -> Maven 的方式设置的;但是实际上,这样的设置方式,是仅对当前项目生效

解决方案:(1条消息) 解决 IDEA 每次创建新的maven项目都需要重新配置的问题_泡锅的博客-CSDN博客_idea每次创建新项目都得重新配置?

在下图位置设置才是针对所有新建项目的设置

又遇到一个问题我套

烦死了

按照上边的方法改变全局配置以后

每次新建maven必定卡死

不知道是为什么,烦~~

怎么尝试都不行,服了,就是一点 create idea立马卡死,一点反应都没有

网上的方法都不行,难顶~~

明儿再说吧,困死了~~


今天终于成功创建了maven项目

原因我也不是特别明确

参考了其他作者的很多文章

看了这篇文章以后我思考是不是之前项目没有彻底删除掉

(3条消息) (详细图示)IDEA彻底删除项目_TianXinCoord的博客-CSDN博客_idea删除项目

按着这个步骤我把之前idea卡死创建的所有maven项目从头到尾清理了一遍,然后重新创建

竟然成功了???......真不容易~~

创建成功以后观察本地仓库文件夹

终于......

第二次创建又卡死了...

我发现了

只有关闭当前项目以后才可以创建成功

.....


其他设置

至此,maven的配置告一段落......


7、创建普通Maven项目

这些只有在web应用下才会有(有点类似Tomcat)

对比一个架构完整的普通maven项目,我们给之前的web项目补充一下结构

  • 在main文件夹下补充java和resources文件夹

    • 方法一:先创建java和resources文件夹,再用IDEA的标记文件夹功能将其标记为源码目录和资源目录

    • 方法二:直接创建为源码目录和资源目录(2022.1版本IDEA已经是自动标记了)

    • 创建完成,如下图所示


8、在IDEA中配置Tomcat

配置步骤如下 (社区版要下载Tomcat插件)

(3条消息) Idea上配置Smart Tomcat_秋山澪与折木奉太郎的爱的博客-CSDN博客_smarttomcat

1.点击IDEA右上角的 Add Configuration

2.按照下图配置

3.启动Tomcat

4.启动完毕后点进网址

5.上边访问到的网站内容其实就是下图中index.jsp中的内容


9、pom 文件

pom.xml是Maven的核心文件

接下来通过代码注释简单了解一下pom文件

<?xml version="1.0" encoding="UTF-8"?>

<!--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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

<!--刚刚配置的GAV-->
  <groupId>com.xy</groupId>
  <artifactId>javaweb-001-maven</artifactId>
  <version>1.0-SNAPSHOT</version>

<!--packaging:项目的打包方式
jar:java应用
war:Java web应用
-->
  <packaging>war</packaging>

  <name>javaweb-001-maven Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

<!--properties:配置-->
  <properties>
    <!--项目默认构建编码-->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!--编码版本(可以手动改成1.8)-->
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

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

  <!--项目构建用的东西-->
  <build>
    <finalName>javaweb-001-maven</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

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


由于maven的特性是约定大于配置,我们之后可以能遇到我们写的配置文件,无法被导出或者生效的问题,解决方案为:在 pom.xml 的< build >中配置< resources >,来防止我们资源导出失败的问题

<!--在pom.xml的<build>中配置<resources>,来防止我们资源导出失败的问题-->
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

10、IDEA 查看 Maven 依赖树

(3条消息) Idea查看Maven依赖树_拉丁卡特的博客-CSDN博客_idea maven 依赖树

1.Show Dependencies的图标,点击后即可查看当前maven模块的依赖结构图(社区版IDEA好像没有)

点开以后是这样的,依赖结构图会以当前maven模块为根节点,一般位于结构图的最下方,然后向上依次展开

其中需要注意到,图中的红色实线是冲突的,右键,排除,他就会自动在pom文件里面给exclud了。

另外我们还可以直接用ctrl+f快速搜索某个jar包的名称,这样就可以很清晰的查看出该jar包如何在maven中引入的。


2.使用Maven命令查看依赖树:mvn dependency:tree


3.使用 Maven helper 插件查看 pom jar 包依赖


11、解决一些问题

【狂神说Java】JavaWeb入门到实战_哔哩哔哩_bilibili P7


posted @   无关风月7707  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示