Maven

初识Maven

1基本安装及测试

下载地址:https://maven.apache.org/download.cgi

  1. 解压到指定位置中【路径不可以有中文与空格】

  2. 配置path:名称为MAVEN_HOME【与Java配置环境变量基本一致】

    • 测试是否成功:
      1. 打开命令行
      2. mvn -v
  3. 本地仓库默认地址:

    1. 安装目录下;

    2. conf --> settings.xml设置如下命令

    3. Default: ${user.home}/.m2/repository【每个电脑的地址不一样】

    4. 实际地址:【C:\Users\罗先生.m2\repository】

      1. 本地仓库路径设置:<localRepository>/path/to/local/repo</localRepository>

         <!-- localRepository
           | The path to the local repository maven will use to store artifacts.
           |
           | Default: ${user.home}/.m2/repository
          <localRepository>/path/to/local/repo</localRepository>
          -->
         <!-- 通过如下标签配置  -->
          <localRepository>/path/to/local/repo</localRepository>
        
    5. 联网状态下:会自动从【*仓库】中下载部分jar包

    6. 断网状态下:可以设置远程仓库【私服】

      1. 远程仓库中的jar包可以从*仓库下载
      2. 也可以本地上传

Maven

1.1Maven可以干什么

  1. 依赖管理:导入jar包,解决jar包冲突问题
  2. 翻译、编译Java代码
  3. 单元项目测试
  4. 打包项目,以供部署

1.2安装目录中,每个文件夹的主要用途

  1. bin:程序主要
  2. boot:maven依赖jar包
  3. conf:maven配置文件夹
    • setting.xml:maven主要配置文件
  4. lib:maven集成jar包

1.3基础命令

  • mvn:部署项目
  • mvnDebug:测试项目

1.4 Maven项目标准目录结构

Maven

2. 常用命令

  • mvn clean:删除编译后文件夹【target】

  • ① mvn compile:重新编译Java文件【重新生成target文件夹】

    src/main/java中Java代码

  • ② mvn test:测试项目,并在【target】文件夹中生成【test-classes】测试文件夹
    执行 ② ① src/test/java and src/main/java

  • ③ mvn package:打包项目资源 ,重新编译Java文件【重新生成target文件夹】,并生成相对应war包
    执行 ③ ② ①

  • ④ mvn install:包括【compile、test、package】的所有功能,不仅在本地仓库,生成相对相应的项目【生成war包】,也在本地仓库中,生成相对应的项目【生成war包】
    执行 ④ ③ ② ①

  • ⑤ mvn deploy:发布
    执行 ⑤ ④ ③ ② ①

3.生命周期

Maven

4. 概念模型

Maven

4.1 pom.xml中信息说明:

4.1.1 项目自身信息

<groupId>com.itheima</groupId>
<artifactId>maven_java</artifactId>
<version>1.0-SNAPSHOT</version>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

4.1.2项目运行所依赖jar包关系

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

5. IDEA集成maven

使用Idea集成的maven创建工程时,都不会再导入jar包了,都是放在本地仓库中,如果,不知道叫什么,或者是,不清楚在本地仓库存在的id和jar包名称以及版本号【<groupId>、<artifactId>、<version>】也就是这三个标签不知道怎么写的时候,可以在电脑联网时,从maven的*仓库中搜索配置即可。

具体操作步骤如下:

  1. 打开maven的*仓库网址【百度直接搜索maven*仓库,第一个就是】:https://mvnrepository.com/
  2. 在网站搜索栏中直接搜索所需要的jar包名称:例如:druid、dbutils、tomcat等
  3. 然后点击适合的标签【一般都是第一个】:
  4. 进去之后选择想要的版本,点击即可:
  5. 知道看到下方有一个maven标签,标签中有上方提到的一些配置信息【<groupId>、<artifactId>、<version>】,将这些信息统统复制
  6. 打开idea项目中的prom.xml文件,在【<dependencies>】 这个标签中配置即可
  • 注意
    • 当然还是使用本地仓库的好,不需要下载或者联网
    • 也可以选择b2b,也就是私服,但是,目前还没有接触,所以不知道如何设置

5.1 集成步骤

  1. 首先保证本地maven安装成功,【通过mvn -v 命令测试】
  2. 打开idea设置:搜索maven
  3. 找到Build Tools下的Maven 选项卡
  4. 设置本地Maven 路径:【Maven home directory】
  5. 设置本地Maven中setting.xml配置文件路径:【User setting file】
  6. 设置本地仓库路径:【Local repository】
  7. 为了加快IDEA加载速度,上一次联网下载过的jar包不再下载,可以进行如下配置
    1. 找到Maven 选项卡中的Runner
    2. 设置其 【VM Options】内容为:-DarchetypeCatalog=internal

Maven

Maven

5.2 使用IDEA创建MAVEN工程

5.2.1 使用骨架创建maven的Java工程

Maven

Maven

Maven

创建一个文件夹,设置为资源根目录

Maven

5.2.2 不使用骨架创建maven的Java工程

简单来说,选择maven 标签后,一直next 即可

Maven

5.2.3 使用骨架创建maven的Java Web工程

Maven

Maven

5.3注意事项

每个jar都可以设置作用域,默认作用域为【compile】
Maven

5.3.1初次使用,无法在Idea中直接新建servlet与jsp页面

虽然maven不需要直接放入jar包了 ,但是还是需要将jar包的坐标【相当于是加入了一个超链接】配置到工程中,用来使用。

需要在工程【pom.xml】文件中,的<dependencies>标签中进行如下配置

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>
    <!--    放置项目运行所依赖jar包-->
    <!--    servlet依赖jar包-->
    <dependency><!--    配置本地jar包必须要与本地(这里指本地仓库)jar包版本一致。路径一致-->
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope><!-- 设置作用域 解决jar包冲突
        【因为在tomcat中已经存在servlet与jsp的jar包】 编译时起作用,运行时不起作用-->
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
        <scope>provided</scope><!-- 设置作用域:编译时起作用,运行时不起作用-->
    </dependency>
</dependencies>

当在工程【pom.xml】文件中配置MySQL版本时,一定要与电脑安装的MySQL版本相匹配,不然会报以下几个异常【本人电脑安装MySQL版本为8.0.22】:

  1. java.sql.SQLException: com.mysql.cj.jdbc.Driver

    Caused by: java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

  2. java.sql.SQLException: com.mysql.cj.jdbc.Driver

    Caused by: java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

  3. java.sql.SQLException: Null connection

配置pom.xml中MySQL实例代码如下:

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.22</version>
            <scope>runtime</scope>
        </dependency>

5.3.2 解决环境冲突问题

maven中已经集成了tomcat 6.0.29版本,但是对于我们来说获取不能使用(本人使用jdk1.8),或者与 某些东西起到了冲突,就好比如出现如下截图,这个时候,需要我们重新配置一个tomcat

其他原理相同:具体代码如下方所示:

Maven

需要在工程【pom.xml】文件中,的</plugins>标签中进行如下配置

<!-- 自定义插件-->
<!--                自定义tomcat-->
<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <port>8080</port>    <!--设置tomcat端口号-->
    </configuration>
</plugin>

<!--                自定义jdk-->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <target>1.8</target><!--设置jdk版本-->
        <source>1.8</source><!--设置class文件对应的jdk-->
        <encoding>UTF-8</encoding><!--设置 Java 编码-->
    </configuration>
</plugin>

做为刚刚入门的Java初学者,还有许多理解不透彻的地方,把自己的笔记发出来也是为了与大家进行交流,同时也是为了帮助像我一样的初学者学起来不是那么难。有问题可以在下面评论。咱们共同成长~

上一篇:TensorFlow K近邻算法


下一篇:Maven配置与安装