maven基础教程:打包命令+跳过测试配置,私服上传与镜像加速实战

admin 综合编程开发技术 3


刚用 Maven 的朋友是不是总在打包这一步卡壳?敲了mvn package结果报一堆测试错误,半天打不出包;好不容易包打出来了,想传到公司私服又提示权限不够;还有每次下载依赖都慢得像蜗牛,眼睁睁看着进度条卡着不动。别着急,兔子哥第一次打包时,就因为测试方法没写对,mvn package执行了五遍都失败,后来才知道可以先跳过测试;配置镜像的时候更搞笑,把阿里云地址输错了一个字母,折腾俩小时才发现问题。今天就带零基础的朋友把 Maven 打包命令、跳过测试的方法、私服上传步骤和镜像加速技巧全学会,这些基础操作掌握了,用 Maven 才会顺手,一起往下看吧!

一、打包命令:从编译到生成 jar 包,一条命令全搞定


最常用的打包命令:mvn package


新手最常用的就是这个命令,它会帮你完成从编译源码、运行测试到生成 jar/war 包的全过程。在项目根目录打开命令行,输入mvn package,回车后就会看到一大串日志,最后如果出现 “BUILD SUCCESS”,就说明打包成功了。
打包好的文件在哪儿呢?在项目的target文件夹里,比如你的项目叫demo,打包后会生成demo-1.0-SNAPSHOT.jar(jar 包)或者demo-1.0-SNAPSHOT.war(war 包),具体是 jar 还是 war,取决于你 pom.xml 里的packaging配置。
网友 “小张” 分享:“之前不知道target目录,打包完到处找 jar 包,后来才发现就在项目根目录下的 target 里,真是白折腾了半天。”

更干净的打包:mvn clean package


有时候你改了代码,但打包出来的还是旧内容,这时候就需要先清理再打包。clean命令会删除target目录,确保打包的是最新代码。执行mvn clean package,Maven 会先删除旧的编译文件,再重新编译、测试、打包,推荐大家平时都用这个命令,不容易出问题。

二、跳过测试:测试报错也能打包,两种方法任你选


场景问题:测试没写完或报错,想先打包该怎么办?


写代码的时候,可能测试方法还没写完,或者测试暂时通不过,但又急需生成包来调试,这时候就可以跳过测试环节。

方法一:命令行加参数(推荐)


在打包命令后面加-DskipTests,比如:
mvn clean package -DskipTests
这个参数会让 Maven 编译测试代码,但不执行测试,适合测试代码没问题,只是暂时不想运行的情况。
如果连测试代码都不想编译(比如测试代码有语法错误),就用-Dmaven.test.skip=true
mvn clean package -Dmaven.test.skip=true
这个参数会跳过测试代码的编译和执行,更彻底,但平时尽量不用,还是得保证测试代码能编译通过。

方法二:在 pom.xml 里配置(不推荐)


在 pom.xml 的build标签里加插件配置,可以默认跳过测试,但这样团队协作时别人拉代码也会跳过测试,容易出问题,新手慎用:
xml
<build><plugins><plugin><groupId>org.apache.maven.pluginsgroupId><artifactId>maven-surefire-pluginartifactId><version>2.22.2version><configuration><skipTests>trueskipTests> configuration>plugin>plugins>build>

兔子哥提醒:跳过测试只是临时办法,正式发布前一定要保证测试通过,不然代码有 bug 都不知道。

三、私服上传:把自己的 jar 包传到团队仓库,方便共享


基础问题:私服是啥?为啥要传私服?


私服就像团队内部的 “共享硬盘”,可以放大家自己开发的 jar 包,比如你写了个工具类模块,传到私服后,团队里其他人的项目直接加依赖就能用,不用每次都拷贝 jar 包。

上传步骤:配置 + 命令,两步搞定


  1. 配置私服地址和账号
    首先在 Maven 的settings.xml里配置私服的账号密码(在标签里):
    xml
    <servers><server><id>my-snapshotid> <username>adminusername> <password>123456password> server>servers>

    然后在你的项目 pom.xml 里配置上传地址(在标签里):
    xml
    <distributionManagement><snapshotRepository> <id>my-snapshotid> <url>http://localhost:8081/repository/maven-snapshots/url> snapshotRepository>distributionManagement>

  2. 执行上传命令
    配置好后,在项目根目录执行mvn clean deploy,Maven 会先打包,然后把包上传到私服。如果看到 “BUILD SUCCESS”,登录私服后台就能看到你上传的 jar 包了。

同事老王分享:“第一次传私服总报 401 错误,后来才发现是 settings.xml 里的 server id 和 pom.xml 里的不一致,改一致就好了,细节太重要了。”

四、镜像加速:下载依赖快 10 倍,国内镜像来帮忙


场景问题:默认仓库下载慢?阿里云镜像救急


Maven 默认从国外的中央仓库下载依赖,网速慢不说,还经常失败。解决办法就是配置国内镜像,比如阿里云镜像,下载速度能快很多。

配置步骤:改 settings.xml,一步到位


打开 Maven 的settings.xml文件,在标签里添加阿里云镜像配置:
xml
<mirrors><mirror><id>aliyunmavenid><mirrorOf>centralmirrorOf><name>阿里云公共仓库name><url>https://maven.aliyun.com/repository/centralurl>mirror><mirror><id>aliyunmaven2id><mirrorOf>publicmirrorOf><name>阿里云公共仓库2name><url>https://maven.aliyun.com/repository/publicurl>mirror>mirrors>

保存后,下次下载依赖就会从阿里云仓库走,速度明显变快。兔子哥亲测,之前下一个 Spring Boot 的依赖要 5 分钟,配置镜像后几十秒就下完了。

五、避坑指南:新手常踩的 5 个坑,提前避开


  1. 打包时报 “测试失败”,找不到原因
    先执行mvn test看看具体哪个测试用例失败了,修改测试代码后再打包;如果急着打包,先用-DskipTests跳过。
  2. 私服上传报 “403 Forbidden”
    一般是权限不够,检查私服仓库是否允许 “Deploy” 操作,登录私服后台,找到对应的仓库,在 “Deployment Policy” 里设置为 “Allow Redeploy”。
  3. 配置镜像后还是从国外仓库下载
    可能是镜像地址写错了,或者标签没设对,正确的应该是central*(匹配所有仓库)。
  4. 打包成功但找不到 jar 包
    肯定在target目录里,要是没有,说明打包没真的成功,仔细看日志,有没有 “BUILD SUCCESS”,失败的话会有 “BUILD FAILURE”。
  5. mvn deploy上传到私服,本地仓库没有包
    deploy命令会先执行install,所以本地仓库也会有包,要是没有,说明上传失败了,看日志里的错误信息,通常是私服地址或账号错了。

六、自问自答:基础操作常问的问题


mvn packagemvn install有啥区别?什么时候用哪个?”
mvn package只生成 jar 包到target目录;mvn install会把 jar 包安装到本地仓库,供其他本地项目依赖。自己用的模块打install,只是临时打包看看就用package
“私服上传必须用mvn deploy吗?直接手动传行不行?”
手动传也行,登录私服后台点 “Upload” 上传,但不如mvn deploy方便,尤其是多模块项目,命令一行搞定,手动传容易传错版本。
“镜像配置越多越好吗?加了好几个镜像还是慢。”
不是,镜像多了 Maven 会挨个试,反而慢。一般加一个阿里云镜像就够了,mirrorOf设为*,覆盖所有仓库。

结尾心得


Maven 的这些基础操作看着简单,但新手很容易在细节上栽跟头。兔子哥的经验是,打包命令记牢mvn clean package,测试有问题就加-DskipTests;私服上传前先检查账号密码和地址是否一致;镜像一定要配,不然下载依赖能急死人。这些操作不用死记硬背,多练几次自然就熟了,遇到报错别慌,仔细看日志里的错误信息,大部分问题都能在日志里找到原因。Maven 用顺了,你会发现它比手动管理 jar 包方便太多,加油,新手朋友们!

标签: demo-1.0-SNAPSHOT.jar demo-1.0-SNAPSHOT.war

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~