公司项目目前用的 JDK 版本还是 1.7,前一段时间同事想把本地的开发环境生成 1.8 想玩玩,结果发现两个小问题,特此记录一下:

  1. jar deploy 到 nexus,生成 javadoc 的时候报的有个错,一些注释不认识:
错误: 未知标记: date  
* @date:2019/8/27 18:40

这个很简单,maven plugin 修改一下就好:

<plugin>  
  <groupId>org.apache.maven.plugins</groupId>  
  <artifactId>maven-javadoc-plugin</artifactId>  
  <version>2.10.1</version>  
  <configuration>  
    <aggregate>true</aggregate>  
    <additionalJOptions>  
      <additionalJOption>-Xdoclint:none</additionalJOption>  
    </additionalJOptions>  
  </configuration>  
  <executions>  
    <execution>  
      <id>attach-javadocs</id>  
      <goals>  
        <goal>jar</goal>  
      </goals>  
    </execution>  
  </executions>
</plugin>

其实就是添加了:

<additionalJOptions>  
  <additionalJOption>-Xdoclint:none</additionalJOption>  
</additionalJOptions>

不过要注意的是,如果要是再改回 1.7,这个还要去掉,不然同样报错,这个至于原因为什么,也没深究,知道的可以留下评论

  1. javac: 无效的目标发行版: 1.8

同时安装好了 1.8,java -version 也显示是 1.8,但是就是用 maven 编译的时候报这玩意,在网上看了一堆人说了一个方法:

<properties>  
  <maven.compiler.source>1.8</maven.compiler.source>  
  <maven.compiler.target>1.8</maven.compiler.target>  
  <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>  
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

还有什么修改 path 路径的等等,其实都并没有什么卵用,因为 javac 已经是 1.8 编译了,又不是还是 1.7,所以这些人连问题出在哪都不知道,真是天下文章一大抄,你抄我来我抄他,但是你们也测试一些行不行啊,行了咱们再抄行不?其实这个问题也简单,在 mvn 文件中有这么一个注释:

JAVA_HOME Must point at your Java Development Kit installation.

文件中有很多地方用到了变量:$JAVA_HOME,而同时在配置环境变量的时候,以前 1.7 的环境变量用的 JAVA_HOME,而新安装的 1.8,用的 JAVA_HOME1,自然就不一致了,只需要把他俩调换一下问题解决。