初识项目管理工具Maven

前言

  • Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具

  • 在项目开发中Maven可以对jar包和对工程之间的依赖关系进行管理,集成tomcat插件,maven项目可以自动发布到tomcat下。

  • maven仓库中存储jar包,可以一次下载,所有项目通用。

一. 安装Maven

1.1 下载Maven

下载maven的官网地址:http://maven.apache.org/download.cgi
下载后解压到安装路径即可。

在这里插入图片描述

1.2 修改配置文件

在conf文件夹里有一个settings.xml
在这里插入图片描述
编辑配置文件,指定本地仓库的路径,即下载的jar包存放在哪里。
在这里插入图片描述

1.3 配置环境变量

添加变量MAVEN_HOME,变量值为1.1中的解压路径
在这里插入图片描述
修改Path变量,在原来的Path后面追加 %MAVEN_HOME%\bin\

1.4 测试

打开命令窗口,运行mvn –version
在这里插入图片描述
到此处,Maven就安装成功了。

二. 配置JDK版本

使用Maven创建的java项目,需要在配置文件中设置默认使用的jdk版本。
修改Maven安装目录的conf/setting.xml文件,找到配置jdk的节点:

 <profile>
  <id>jdk18</id>
   <activation>
   <activeByDefault>true</activeByDefault>
    <jdk>1.8</jdk>
   </activation>
   <properties>
    <maven.compiler.source>1.8</maven.compiler.source>      
    <maven.compiler.target>1.8</maven.compiler.target> 
    <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
   </properties>
 </profile>

备注:此处的配置信息不要放在注释中,很多人粘贴过去直接放在注释中,而且此处的配置会因为Maven的版本不同略有不同,所以不太建议直接复制

三. 配置镜像

Maven的中央仓库是在国外的,如果网络有限制,会导致jar包下载的很慢或者无法
下载。可以在网上找一些国内的镜像:
找到setting.xml的节点,加入如下内容:

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

备注:此处配置的是阿里云镜像,读者可以搜索其他的镜像

四. 如何在IDEA中配置Maven

在这里插入图片描述
在这里插入图片描述
备注:此处Maven的配置工作就完成了,但是有些人会进入IDEA界面后,通过FILE-SETTINGS-搜索Maven来配置,这样配置并不是全局配置,可仿照如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时新建项目后发现Maven配置信息已经完善

五. IDEA中如何创建Maven工程

5.1 Maven工程

在这里插入图片描述
在这里插入图片描述
此处的GroupId就是组织名,全球唯一。ArtifactId通常就是项目名,一个组织下可以有多个项目,Version为版本号,项目正式发布时不建议使用SNAPSHOT快照版本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果创建成功,会在IntelliJ中看到完整的目录结构。
如果创建失败,可以在控制台中查看EventLog
有些资源Maven需要联网下载,如果download失败,项目可能创建失败。
如果创建同名的工程也会报错,如下:
在这里插入图片描述
此时需要删除工程目录下对应的文件夹,并删除回收站中对应的文件
备注:此处的创建因IDEA版本不同会有所不同

5.2 创建目录

右键单击main->New->Directory
在这里插入图片描述
在这里插入图片描述
右键java文件夹->Mark Directory As ->Sources Root将文件夹更改成源码文件
在这里插入图片描述
同样的步骤创建resources文件夹,右键resources->Mark Directory As –>Resources Root
java文件夹下用于存放package,相当于eclipse普通工程中的src目录。
resources中用于存放配置文件和属性文件。
还可以在src下创建test文件夹,用于junit测试。test下同样创建java和resources
在这里插入图片描述
备注:如果用的IDEA版本较新,这些文件夹有的会自己创建

5.3 Maven的配置文件

pom.xml是maven的核心配置文件,在pom.xml中可以定义工程的依赖关系,和引用
jar包的信息。

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

这里引用了junit的jar包,版本是4.12

5.4 配置插件

<build>
 <finalName>test001</finalName>
  <plugins>
   <plugin>
    <groupId>org.apache.tomcat.maven</groupId>
     <artifactId>tomcat7-maven-plugin</artifactId>
      <configuration> <path>/</path> <port>8080</port>
      </configuration>
    </plugin>
  </plugins>
</build>

pligins用于定义插件,此处引用了tomcat的插件。path是访问路径,如果我们同时运
行多个项目,访问路径都是根路径,可以通过修改port端口号来访问项目。

5.5 测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
命令:clean tomcat7:run
配置成功后可以在工具栏里看到刚才配置的命令,点击绿色的三角
在这里插入图片描述
点击运行后,就可以在浏览器中访问到资源(前提是已经创建了资源)
比如:在这里插入图片描述

5.6 查看jar包

通常,在pom.xml中加入配置信息后,maven会自动下载jar包
在项目的External Libraries中可以看到maven下载的jar:
在这里插入图片描述
如果在pom.xml中加入后,在左侧看不到jar包,可以右键点击pom.xml,选择Maven- >Reimport
在这里插入图片描述
或者在IDEA右侧点击Maven Project:
在这里插入图片描述
jar包没有正确引入的时候,pom.xml中会出现错误提示:
在这里插入图片描述
明显的标红

5.7 排除jar包冲突

<dependency>
 <groupId>junit</groupId>
  <artifactId>junit</artifactId>
   <!-- 排除冲突jar包 -->
<exclusions>
 <exclusion>
   <groupId>org.hamcrest</groupId>
   <artifactId>hamcrest-core</artifactId>
   </exclusion> 
 </exclusions> 
</dependency>

六. Maven的继承

6.1 pom工程

pom工程中只有一个pom.xml文件,不包含java和resource目录,它只用来保存一些
依赖信息。
在pom.xml中添加依赖信息信息,如junit、mysql等,也可以定义插件信息:

<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>com.maven.test</groupId> <artifactId>test-parent</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> 
<!-- 自定义属性 -->
<properties>
 <junit.version>4.12</junit.version> 
 <mysql.version>5.1.32</mysql.version>
</properties> 
<!--继承自该项目的所有子项目的默认依赖信息。这部分的依赖信息不会被立即解析, 而是当子项目声明一个依赖(必须描述group ID和artifact ID信息),如果group ID和 artifact ID以外的一些信息没有描述,则通过group ID和artifact ID匹配到这里的依 赖,并使用这里的依赖信息。-->
<dependencyManagement>
 <dependencies>
  <!--用于junit测试 -->
<dependency>
 <groupId>junit</groupId>
  <artifactId>junit</artifactId> 
  <version>${
    
    junit.version}</version>
</dependency> 
   <!-- mysql驱动包 -->
<dependency>
<groupId>mysql</groupId> 
<artifactId>mysql-connector-java</artifactId>
<version>${
    
    mysql.version}</version>
</dependency>
</dependencies> 
</dependencyManagement> 
<build> <!--产生的构件的文件名,默认值是${
    
    artifactId}-${
    
    version}-->
<finalName>${
    
    project.artifactId}</finalName> 
<!--使用的插件列表 。-->
<plugins> 
<!-- 资源文件拷贝插件 -->
<plugin>
 <!--plugin元素包含描述插件所需要的信息。-->
<groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-resources-plugin</artifactId> <version>2.7</version> 
 <!--作为DOM对象的配置-->
<configuration> 
<encoding>UTF-8</encoding> 
</configuration>
 </plugin> 
 <!-- java编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-compiler-plugin</artifactId>
 <version>3.2</version> 
 <configuration>
  <source>1.8</source>
   <target>1.8</target> 
   <encoding>UTF-8</encoding>
   </configuration> 
  </plugin> 
</plugins> <!--子项目可以引用的默认插件信息。该插件配置项直到被引用时才会被解析或 绑定到生命周期。给定插件的任何本地配置都会覆盖这里的配置-->
<pluginManagement>
 <plugins> 
 <!-- 配置Tomcat插件 -->
<plugin>
 <groupId>org.apache.tomcat.maven</groupId> 
 <artifactId>tomcat7-maven-plugin</artifactId>
 <version>2.2</version>
 </plugin> 
</plugins> 
</pluginManagement>
</build> 
</project>

6.2 创建子工程

在这里插入图片描述
在子工程中添加父工程里定义过的依赖:

<dependencies> 
<dependency> 
<groupId>junit</groupId>
 <artifactId>junit</artifactId> 
 </dependency> 
</dependencies>

可以不用写版本号了,它会自动继承父工程里定义的版本。

七. 打包

在这里插入图片描述
clean 清除编译结果
package 打包
install 安装到本地仓库

猜你喜欢

转载自blog.csdn.net/weixin_44726976/article/details/106358121