天天看點

使用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> -->
           

繼續閱讀