最近把一个旧项目改为maven项目,发现一个问题,
旧项目用eclipse打包编译没问题,
但是改为maven项目使用maven打包就会出现一堆错误
百度了一下发现maven使用的是javac编译相比较于eclipse的jdt要严格许多
但是旧项目以前代码写的不规范,很多那种泛型强转的问题如果要一个一个改工作量太大
于是只能采取配置pom的编译插件为eclipse的jdt来编译 这样就没问题了 因为以前本来也没问题
还是百度来的配置替换原来pom的编译插件
结果依然又出了一大堆其他问题 ,
仔细观察错误发现里面有说switch参数不能用字符串,想了想估计是编译这插件版本太低,估计还是jdk7以前时代的
打开maven的网站 搜索maven-compiler-plugin 找了一个较新的3.8.0 版本号 ,它引用的plexus-compiler-api为2.8.4
因为我们要用eclipse的jdt所以要用plexus-compiler-eclipse替换这个引用
以前百度到的配置版本是3.1和2.2 版本太低了才会导致出现新的问题, 改为如下新版号后顺利编译打包
<!-- eclipse jdt编译 -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
<compilerId>eclipse</compilerId>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-eclipse</artifactId>
<version>2.8.4</version>
</dependency>
</dependencies>
</plugin>
<!-- javac 编译 -->
<!-- <plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin> -->