Maven 編譯使用 rt.jar
專案在使用mvn clean package 打包的時候出現 com.sun.image.codec.jpeg.JPEGCodec 是 Sun 的專用 API 這樣的編譯錯誤提示時,我們需要在maven編譯外掛中指定引數 rt.jar 檔案。因為 rt.jar 是jre 中自帶的 jar 包,所以才使用編譯引數的方式使用。
因為在windows下,這個分隔符應該是“分號”,而在Linux 下這個分隔符必須是“冒號”,無論我們寫死哪一種都是不相容的,所以maven為我們提供了這樣的變數 ${path.separator}
pom.xml 的程式碼片段如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<verbose />
<bootclasspath>${JAVA_HOME}/jre/lib/rt.jar${path.separator}${JAVA_HOME}/jre/lib/jce.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
<!-- 你專案中需要的其他外掛本例忽略 -->
</plugins>
</build>
主要我上面的 bootclasspath 引數指定了2個 jar 檔案。
第一是我專案中需要這2個檔案編譯。
第二我是為了說明另外一個問題:就是當我們需要指定多個 jar 的時候,中間的分隔符,要使用maven內建變數 ${path.separator} 來指定。因為在windows下,這個分隔符應該是“分號”,而在Linux 下這個分隔符必須是“冒號”,無論我們寫死哪一種都是不相容的,所以maven為我們提供了這樣的變數,可以自動根據作業系統來使用對應的分隔符。
所以maven分隔符變數 ${path.separator} 我們可能在其他配置的時候也會使用到,大家回想一下在Linux下和在Windows下配置環境變數時的分隔符就知道了。
相關文章
- Maven 使用指定 Java 版本編譯專案MavenJava編譯
- Maven命令列使用:mvn clean compile(編譯)Maven命令列Compile編譯
- maven 使用Maven編譯專案遇到——“maven編碼gbk的不可對映字元”解決辦法Maven編譯字元
- maven-編譯速度優化Maven編譯優化
- Lombok編譯器Maven外掛Lombok編譯Maven
- 使用阿里雲的Maven倉庫加速Spark編譯過程阿里MavenSpark編譯
- Maven編譯elasticsearch-analysis-ik報錯Maven編譯Elasticsearch
- maven更改編譯環境的java版本Maven編譯Java
- maven編譯時如何忽略單元測試Maven編譯
- maven 混合編譯 java/scala 程式碼報錯(qbit)Maven編譯Java
- 使用makefile編譯編譯
- Lombok 的@ToString導致的Maven編譯錯誤LombokMaven編譯
- 交叉編譯-Mac環境使用NDK編譯FFmpeg編譯Mac
- 使用xmake編譯工程編譯
- maven編譯遇到"編碼GBK的不可對映字元"警告的處理Maven編譯字元
- Windows下編譯使用AliyunOSSCSDKWindows編譯
- 使用makefile編譯c程式編譯C程式
- 編譯和使用zlib編譯
- GCC編譯器的使用GC編譯
- 使用C編譯器編寫shellcode編譯
- apache continuum build maven2 專案 無法編譯classApacheUIMaven編譯
- kubernetes下jenkins實戰maven專案編譯構建JenkinsMaven編譯
- 利用classfinal-maven-plugin對jar進行加密,防止反編譯MavenPluginJAR加密編譯
- C編譯: 使用gdb除錯編譯除錯
- Rust 編譯器探索使用 PGORust編譯Go
- 使用 Nginx 編譯 Sass 和 ScssNginx編譯CSS
- C 編譯: 使用 gdb 除錯編譯除錯
- QEMU編譯及使用方法編譯
- windows上使用clang編譯程式Windows編譯
- 使用gdb編譯除錯mysql編譯除錯MySql
- android使用ant編譯(rem)Android編譯REM
- Windows下編譯使用AliyunOSSPHPSDKWindows編譯PHP
- Typora編譯器使用方法編譯
- dva使用yarn編譯出錯Yarn編譯
- maven編專案編譯後在target下的zip檔案損壞無法開啟Maven編譯
- Maven 使用Maven
- 解決 Delegate IDE build/run actions to Maven 編譯兩次的問題IDEUIMaven編譯
- Maven配置外掛跳過測試程式碼的編譯和執行Maven編譯