Maven的使用

1.第一个Maven工程

1.1 创建约定目录结构

​ Hello

​ src

​ ------main(存放主程序)

​ ------------java(存放源代码文件)

​ ------------resources(存放配置文件和资源文件)

​ ------test(存放测试程序)

​ ------------java

​ ------------resources

​ pom.xml

1.2 创建核心文件 pom.xml

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>com.study</groupId>
    <artifactId>maven</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.0</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

1.3 编写主程序

在src/main/java/com/studyMaven/start目录下新建文件Hello.java

java 复制代码
package com.studyMaven.start;

public class Hello {
    public String sayHello(String name) {
        return "Hello" + name + "!";
    }
}

1.4 编写测试代码

在src/test/java/com/studyMaven/start目录下新建文件HelloTest.java

java 复制代码
package com.studyMaven.start;

import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class HelloTest {
    @Test
    public void testHello(){
        Hello hello = new Hello();
        String result = hello.sayHello("maven");
        assertEquals("Hello maven!",result);

    }
}

1.5 运行基本的Maven命令

打开cmd命令行,进入Hello项目根目录(pom.xml文件所在目录)执行mvn compile命令,查看根目录变化

cmd 中继续录入mvn clean命令,然后再次查看根目录变化

cmd 中录入 mvn compile命令, 查看根目录变化

cmd 中录入 mvn test-compile命令, 查看target目录的变化

cmd 中录入 mvn test命令,查看target目录变化

cmd 中录入 mvn package命令,查看target目录变化

cmd 中录入 mvn install命令, 查看本地仓库的目录变化

注意:运行Maven命令时一定要进入pom.xml文件所在的目录!

2.Maven连网问题

  • 配置本地仓库

  • Maven的核心程序并不包含具体功能,仅负责宏观调度。具体功能由插件来完成。Maven核心程序会到本地仓库中查找插件。如果本地仓库中没有就会从远程中央仓库下载。此时如果不能上网则无法执行Maven的具体功能。为了解决这个问题,可以将Maven的本地仓库指向一个在联网情况下下载好的目录。

  • Maven默认的本地仓库:~.m2\repository目录。

    ​ Tips:~表示当前用户的家目录。

  • Maven的核心配置文件位置:D:\develop\apache-maven-3.3.9\conf\settings.xml

  • 设置方式(本地仓库地址): <localRepository>以及准备好的仓库位置</localRepository>

  • 为了以后下载jar包方便,配置阿里云镜像

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

3.IDEA中配置Maven

3.1 设置maven的安装目录及本地仓库

  • Maven home directory:可以指定本地 Maven 所在的安装目录;此外,这里不建议使用IDEA默认的。
  • User settings file / Local repository:可以指定 Maven 的 settings.xml 位置和本地仓库位置。

3.2 配置Maven自动导入依赖的jar包

  • Import Maven projects automatically:表示 IntelliJ IDEA 会实时监控项目的 pom.xml 文件,进行项目变动设置,勾选上。
  • Automatically download:在 Maven 导入依赖包的时候是否自动下载源码和文档。默认是没有勾选的,也不建议勾选,原因是这样可以加快项目从外网导入依赖包的速度,如果需要源码和文档的时候我们到时候再针对某个依赖包进行联网下载即可。IntelliJ IDEA 支持直接从公网下载源码和文档的。
  • VM options for importer:可以设置导入的 VM 参数。一般不需要主动改,除非项目真的导入太慢了再增大此参数。

4.Maven 打包插件

Maven本身的打包插件不负责将依赖的jar包一并打入到jar包中。如果项目所依赖的jar包在服务器环境中提供了还好,如果服务器环境中没有提供,则比较悲惨,运行各种ClassNotFound....;因此需要一款能够将项目所依赖的jar包 一并打入到jar中的插件来解决这些问题。

xml 复制代码
	<build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <!-- 指定主类 -->
                            <mainClass>xxx.xxx.XXX</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

5.总结

  • Maven项目:确定目录结构、pom.xml、主程序以及测试程序
  • 通过一个Maven 的入门案例熟悉Maven的使用。
相关推荐
两年半的个人练习生^_^2 分钟前
每日一学:设计模式之建造者模式
java·开发语言·设计模式
我登哥MVP3 分钟前
【SpringMVC笔记】 - 6 - RESTFul编程风格
java·spring boot·spring·servlet·tomcat·maven·restful
yhole7 分钟前
spring security 超详细使用教程(接入springboot、前后端分离)
java·spring boot·spring
zjjsctcdl8 分钟前
SpringBoot3.3.0集成Knife4j4.5.0实战
java
彭于晏Yan9 分钟前
Spring Boot 集成邮件服务实现发送邮件功能
java·spring boot·后端
浮尘笔记10 分钟前
Java Snowy 框架生产环境安全部署全流程(服务器篇)
java·运维·服务器·开发语言·后端
宸津-代码粉碎机11 分钟前
Spring Boot 4.0虚拟线程实战续更预告:高阶技巧、监控排查与分布式场景落地指南
java·大数据·spring boot·分布式·后端·python
Rsun0455113 分钟前
6、Java 适配器模式从入门到实战
java·开发语言·适配器模式
MaCa .BaKa15 分钟前
52-考研备考服务平台系统-考研系统
java·spring boot·mysql·考研·tomcat·maven·mybatis
_深海凉_17 分钟前
LeetCode热题100-最长公共子序列
java·开发语言·前端