Maven 相关使用及问题解决

目录

一、Maven Setting 配置:

二、Maven 启动Springboot 项目:

三 、Maven 常用命令

四、安装Maven Wrapper


一、Maven Setting 配置:

<!--setting.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <mirrors>
        <!-- 阿里云镜像1 -->
        <mirror>
            <id>alimaven</id>
            <mirrorOf>central</mirrorOf>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </mirror>
        <!-- 阿里云镜像2 -->
        <mirror>
            <id>aliyun</id>
            <mirrorOf>central</mirrorOf>
            <name>aliyun Maven</name>
            <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
        </mirror>
        <!-- junit镜像 -->
        <mirror>
            <id>junit</id>
            <mirrorOf>central</mirrorOf>
            <name>junit Address/</name>
            <url>http://jcenter.bintray.com/</url>
        </mirror>
        <!-- maven官方镜像 -->
        <mirror>
            <id>repo1</id>
            <mirrorOf>central</mirrorOf>
            <name>Human Readable Name</name>
            <url>http://repo1.maven.org/maven2/</url>
        </mirror>
    </mirrors>
    <!-- 
        配置下载
         java源码命令行 : mvn dependency:sources  
         javadoc命令行 : mvn dependency:resolve -Dclassifier=javadoc
    -->
    <profile>
       <id>downloadSources</id>
       <properties>
          <!-- 下载源码  -->
          <downloadSources>false</downloadSources>
          <!-- 下载JavaDoc 文档  -->
          <downloadJavadocs>true</downloadJavadocs>
       </properties>
    </profile>
    <!-- 
    <activeProfiles>
      <activeProfile>downloadSources</activeProfile>
    </activeProfiles> 
    -->
</settings>

二、Maven 启动Springboot 项目:

pom.xml 文件中添加启动器依懒:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.7.0</version> <!-- 使用适合你项目的版本 -->
        </plugin>
    </plugins>
</build>

启动Springboot命令:

# 启动 spring-boot 项目
# 这里srping-boot 必须使用 - 分隔

mvn spring-boot:run

# 或是

mvn org.springframework.boot:spring-boot-maven-plugin:run

# 或是打包启动,必须时新版本maven

./mvnw spring-boot:run  # 对于使用 mvnw (Maven Wrapper) 的项目
mvn clean package && java -jar target/your-app.jar  # 对于打包后运行的情况

#清理和更新 Maven 仓库

mvn clean install -U

三 、Maven 常用命令

一、核心构建指令

mvn clean
    
    作用:删除 target 目录(清理编译/打包生成的文件)。
    场景:确保从头开始构建,避免残留文件干扰。

mvn compile
    
    作用:编译项目源代码。
    场景:快速检查代码是否能编译通过,无需打包。

mvn package
    作用:编译 + 运行测试 + 打包(生成 JAR/WAR 等)。
    场景:本地验证完整构建流程,生成可部署的包。

mvn install
    作用:编译 + 测试 + 打包,并将构建结果安装到本地仓库。
    场景:本地多模块项目中,将子模块的构建结果提供给其他模块使用。

mvn deploy
    作用:将构建结果发布到远程仓库(如 Nexus、Artifactory)。
    场景:将稳定版本的依赖共享给团队或持续集成环境。

二、依赖管理指令

mvn dependency:tree
    作用:打印项目依赖树,显示所有传递性依赖。
    场景:分析依赖冲突(如多个版本的库冲突),快速定位问题。

mvn dependency:analyze
    作用:检查未声明但被使用的依赖(或声明但未使用的依赖)。
    场景:优化 pom.xml,清理冗余依赖。

mvn versions:display-dependency-updates
    作用:扫描依赖是否有新版本可用。
    场景:定期更新依赖版本,修复安全漏洞或使用新特性。

三、测试相关指令

mvn test
    作用:运行单元测试。
    场景:验证代码逻辑是否符合预期。

mvn test -Dtest=TestClassName
    作用:运行指定测试类。
    场景:调试单个测试用例,避免运行全部测试。

mvn test -DskipTests
    作用:跳过测试阶段。
    场景:快速构建(如临时修复时不需要执行测试)。

四、调试与优化指令

mvn -X
    作用:开启 Maven 的调试日志(显示详细执行过程)。
    场景:排查构建失败的具体原因。

mvn -U
    作用:强制更新远程仓库的快照(Snapshot)依赖。
    场景:确保使用最新的快照版本(如依赖频繁更新的开发中库)。

mvn --offline
    作用:离线模式(仅使用本地仓库的依赖)。
    场景:网络不可用时继续构建。

五、多模块项目指令

mvn -pl module1,module2
    作用:仅构建指定的子模块(如 module1 和 module2)。
    场景:大型项目中快速构建部分模块,节省时间。

mvn -am -pl module1
    作用:构建指定模块及其依赖的其他模块。
    场景:确保依赖的子模块已构建(如 module1 依赖 core 模块时自动构建 core)。

六、高级场景

mvn help:effective-pom
    作用:生成合并所有父 POM 后的最终有效 POM。
    场景:分析实际生效的配置(如插件、依赖版本)。

mvn archetype:generate
    作用:使用 Maven 原型(模板)创建新项目。
    场景:快速生成标准项目结构(如 Spring Boot、JavaFX 项目)。
mvn release:prepare / mvn release:perform
    作用:自动化版本发布(更新版本号、打 Tag、发布到仓库)。
    场景:规范化的版本发布流程。

————————————————

总结表格

指令                                        典型场景

mvn clean install                            清理旧构建并安装到本地仓库

mvn dependency:tree                          分析依赖冲突或冗余依赖
    
mvn test -DskipTests                         跳过测试快速打包

mvn versions:display-dependency-updates      检查依赖库是否有新版本可用

mvn -pl module1 -am                          构建指定模块及其依赖模块

mvn -X                                        开启详细日志排查构建问题

四、安装Maven Wrapper

安装Maven Wrapper最简单的方式是在项目的根目录(即pom.xml所在的目录)下运行安装命令:

 $mvn wrapper:wrapper

它会自动使用最新版本的Maven。如果要指定使用的Maven版本,使用下面的安装命令指定版本,例如3.9.0:

$ mvn wrapper:wrapper -Dmaven=3.9.0

安装后,查看项目结构:

my-project
├── .mvn
│   └── wrapper
│       └── maven-wrapper.properties
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   └── resources
    └── test
        ├── java
        └── resources

发现多了mvnw、mvnw.cmd和.mvn目录,我们只需要把mvn命令改成mvnw就可以使用跟项目关联的Maven。例如:

mvnw clean package

在Linux或macOS下运行时需要加上./:

$ ./mvnw clean package

Maven Wrapper的另一个作用是把项目的mvnw、mvnw.cmd和.mvn提交到版本库中,可以使所有开发人员使用统一的Maven版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜡台

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值