0.mvn install 强制更新
mvn install的作用是将jar包安装到本地maven库,如果下次再执行mvn install,怎样保证本地maven库的jar包被强制更新呢?
mvn clean install -e -U
-e详细异常,-U强制更新
1.windows 配置java环境变量
千万别忘了配置CLASSPATH
Windows 10 Java环境变量配置 - Tyhoo_Wu
2.Maven编码问题导致编译失败
编码GBK的不可映射字符
怎样解决?参考文章:使用Maven编译项目遇到——“maven编码gbk的不可映射字符”解决办法_paul342的专栏_maven 编码gbk的不可映射字符
<!-- 指明编译源代码时使用的字符编码,maven编译的时候默认使用的GBK编码, 通过project.build.sourceEncoding属性设置字符编码,告诉maven这个项目使用UTF-8来编译 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
3.Maven指定java编译器版本:
在系统中安装了java8 和java11,后来将java11卸载,然后在编译过程中,出现了下面的错误:
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project tcloud-gateway: Fatal error compiling: 无效的 目标发行版: 11 -> [Help 1]
解决办法就是指定java编译器版本为java8:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
4.清理本地maven仓库:
maven工具帮我们下载jar包的时候,由于种种原因,或断电、或蓝屏、或工具抽风等等等等情况导致我们下载jar包失败,例如带有lastUpdated的某个jar包
这个时候应该将其删除,然后重新下载,怎么做呢?
5.程序包scala.annotation.meta不存在:
程序包scala.annotation.meta是java8 的新特性,可能跟java版本有关系,我使用的java版本是"1.8.0_311"
编译出错。
有人使用20*版本,编译通过,可以肯定是java版本的问题。
6.提示jar包缺失
Could not find artifact net.trueland:logback-appender:pom:1.0.0 in nexus (http://*******:8080/repository/maven-public/)
但是在本地仓库中发现有这个jar包,但是带有lastUpdated,如果删掉之后,重新下载该jar包,还是有这个问题,那么就不是简单的网络故障导致的,而可能是远程maven仓库中缺少了.pom文件。
jar包 is missing问题解决方案:
root cause: Nexus(远程maven仓库)中缺少了.pom文件
怎样解决这种问题?https://www.jianshu.com/p/7db90e42688e
这个问题是因为maven远程仓库中的Jar包缺少.pom文件,所有我们只需要在本地仓库手动生成一个pom文件(这种可以解决,最好将正确格式的依赖文件上传的私服上)
mvn install:install-file -DgroupId=net.trueland -DartifactId=logback-appender -Dversion=1.0.0 -Dfile=H:\Personal\logback-appender-1.0.0.jar -Dpackaging=jar -DgeneratePom=true
7.IDEA 内存不足
java.lang.outofmemoryerror gc overhead limit exceeded
解决方案:idea maven java.lang.outofmemoryerror gc overhead limit exceeded_zhongzunfa的博客