2014-07-09 23 views
2

我有一個項目使用JDK 1.5(由於項目遺留),我想使用Restlet。當我通過Eclipse中運行mvn install編譯一個Maven依賴與另一個JDK

<build> 

    <plugins> 
     [...] 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.1</version> 
      <configuration> 
       <source>1.5</source> 
       <target>1.5</target> 
      </configuration> 
     </plugin>  
    </plugins> 

    </build> 

    <repositories> 
     <repository> 
      <id>maven-restlet</id> 
      <name>Restlet repository</name> 
      <url>http://maven.restlet.com</url> 
     </repository> 
    </repositories> 

    <properties> 
     <restlet-version>2.2.1</restlet-version> 
     <spring-version>3.1.1.RELEASE</spring-version> 
    </properties> 
    <dependencies> 
     <dependency> 
      <groupId>org.restlet.jse</groupId> 
      <artifactId>org.restlet</artifactId> 
      <version>${restlet-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.restlet.jse</groupId> 
      <artifactId>org.restlet.ext.jackson</artifactId> 
      <version>${restlet-version}</version> 
     </dependency> 
    </dependencies> 

,我得到以下錯誤:目前我得到了我的pom.xml當前構建部分

[ERROR] src/main/java/com/****/SomeFile.java:[3,-1] cannot access org.restlet.Component 
bad class file: ****\.m2\repository\org\restlet\jse\org.restlet\2.2.1\org.restlet-2.2.1.jar(org/restlet/Component.class) 
class file has wrong version 50.0, should be 49.0 

我理解錯誤是因爲我我試圖用Java 5編譯一個項目,但使用Java 6庫。如何在JDK 1.5中使用或編譯我的依賴關係?

回答

6

您將不得不使用舊版本。如果您檢查Official Restlet Framework Blog,它在2.2版新聞中說以下內容:

We no longer support Java 5 which has been the case since Restlet Framework version 1.0. If you still need to support Java 5 due to other requirements, we encourage you to keep using Restlet Framework 2.1.

1

你不能在沒有重新編譯的情況下使用它們。爲了達到這個目的,你需要源代碼,並且在很多情況下需要一些構建腳本來正確完成構建。

java版本是.class文件的一部分,因爲您告訴Maven爲Java 5編譯,編譯器將拒絕只使用版本高於49.0的.class文件(這是Java 5的類文件版本)。

因此,您需要具有版本49.0的.class文件,因此您需要重新編譯庫以及可能的依賴關係。在這個過程中,您甚至可能需要考慮到代碼可能會使用更新的語言功能或JDK庫,因此這可能是一項艱鉅的任務。在許多情況下,嘗試提高使用Java 6或查找其他庫的限制可能會更好。

相關問題