maven-docker整合時候,使用mvn docker:build發生javax.activation.DataSource沒找到的異常

問題基本分析

初步看錯誤,是因爲沒有找到javax.activation.DataSource類的原因導致的錯誤。

Caused by: java.lang.ClassNotFoundException: javax.activation.DataSource
	at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)

問題分析

印象中javax.activation.DataSource類應該是jdk自帶的,不應該找不到纔對,後面才發現筆者的jdk環境是jdk13,我們知道javax.activation從jdk11就已經被移除掉了,但是奇怪的是項目在運行的時候沒有報錯,所以斷定是編譯的過程依賴到了。所以,解決方案是,給插件添加依賴activation,也就是xml的最後一部分。問題完美解決,解決了的童鞋記得點個贊哦。

解決方案

 <plugin>
  <groupId>com.spotify</groupId>
     <artifactId>docker-maven-plugin</artifactId>
     <version>1.0.0</version>
     <configuration>
         <!--指定鏡像上傳到docker 私服的地址-->
         <imageName>192.168.148.132:5000/${project.artifactId}:${project.version} </imageName>
         <baseImage>jdk13</baseImage>
         <entryPoint>["java", "‐jar", "/${project.build.finalName}.jar"]</entryPoint>
         <resources>
             <resource>
                 <targetPath>/</targetPath>
                 <directory>${project.build.directory}</directory>
                 <include>${project.build.finalName}.jar</include>
             </resource>
         </resources>
         <!--指定docker restAPI 接口-->
         <dockerHost>http://192.168.148.132:2375</dockerHost>
     </configuration>
     <dependencies>
         <dependency>
             <groupId>javax.activation</groupId>
             <artifactId>activation</artifactId>
             <version>1.1.1</version>
         </dependency>
     </dependencies>
 </plugin>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章