问题描述
在日常开发工作中,总会用到Maven 打包的场景,在maven 打包时,理论上对于本地不存在的包,Maven 会自动从远程拉取指定版本号的最新包。如果本地存在包,Maven 则不会从远程拉取指定版本号的包。但是在实际工作中,有这样一个场景:通过Maven 从远程仓库拉取 jar 包时受限于种种原因(权限、网络等)不能拉取,这个时候通过其他方式(从别的同事那里拷贝、其他途径下载好jar包)已经获取到对应的 jar 包,放入Maven 仓库后,Maven 打包时仍然提示找不到包或者没有权限问题。
问题处理
当遇到这种问题时,那么可以将你本地仓库依赖包中 jar 包的文件夹下面的_remote.repositories 和 以.lastUpdated结尾的文件 的文件删除,删除之后再次重新通过Maven 打包命令打包就可以了
其他命令
这里我们再说一下 Maven 的一些日常命令。
删除本地历史的打包文件
mvn clean
执行打包命令
mvn clean package
当本地项目有Test 文件的话,在打包执行命令时可以指定跳过 Test 文件。
跳过测试执行,但编译测试类:使用 -DskipTests 参数
mvn clean package -DskipTests
跳过测试的编译和执行:使用 -Dmaven.test.skip=true 参数。这会完全忽略测试相关环节,打包速度更快
mvn clean package -Dmaven.test.skip=true
好了,经常用的Maven 打包命令基本上就上面两种情况了。