天天看点

使用maven编译打包用javac还是eclipse的jdt的问题

最近把一个旧项目改为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> -->
           

继续阅读