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 项目不识别java maven项目无法编译_java

 怎样解决?参考文章:使用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包

maven 项目不识别java maven项目无法编译_maven_02

这个时候应该将其删除,然后重新下载,怎么做呢?

5.程序包scala.annotation.meta不存在:

程序包scala.annotation.meta是java8 的新特性,可能跟java版本有关系,我使用的java版本是"1.8.0_311"

maven 项目不识别java maven项目无法编译_java_03

编译出错。

有人使用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文件。

maven 项目不识别java maven项目无法编译_maven_02

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的博客