2009-01-14 50 views
1

如果我直接從測試程序(請參閱底部)引用SnakeYAML jar,則一切正常。如果我是我Maven的創建項目中,我得到下面的輸出從我的單元測試:有沒有人使用本地Maven回購的SnakeYAML成功加載YAML文件?

java.lang.NoSuchMethodError: java.util.LinkedList.push(Ljava/lang/Object;)V 
    at org.yaml.snakeyaml.scanner.ScannerImpl.addIndent(ScannerImpl.java:482) 
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchBlockEntry(ScannerImpl.java:653) 
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:268) 
    at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:178) 
    at org.yaml.snakeyaml.parser.ParserImpl$ParseImplicitDocumentStart.produce(ParserImpl.java:213) 
    at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:172) 
    at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143) 
    at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:163) 
    at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:66) 
    at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:60) 
    at org.yaml.snakeyaml.Loader.load(Loader.java:35) 
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:134) 

由於Maven的不能在中央回購找到SnakeYAML,我手動安裝到我的本地回購。萬一它很重要,我在Mac上使用SnakeYAML 0.9和Maven 2.0.9。

樣品YAML文件

- 
    accountCode: foo 
    accountId: 1 
    email: [email protected] 
    userId: 1 

工作測試程序

import java.io.*; 
import java.util.*; 

import org.yaml.snakeyaml.Yaml; 

/** 
* Testing SnakeYAML. 
* 
* @author Hank Gay 
*/ 
public final class Foo { 
    public static void main(final String[] args) throws Exception { 
     final Yaml yaml = new Yaml(); 
     Reader reader = null; 
     try { 
      reader = new FileReader("/tmp/foo.yaml"); 
      System.out.println(yaml.load(reader)); 
     } catch (final FileNotFoundException fnfe) { 
      System.err.println("We had a problem reading the YAML from the file because we couldn't find the file." + fnfe); 
     } finally { 
      if (null != reader) { 
       try { 
        reader.close(); 
       } catch (final IOException ioe) { 
        System.err.println("We got the following exception trying to clean up the reader: " + ioe); 
       } 
      } 
     } 
    } 
} 

回答

3

似乎是一個JDK版本問題:LinkedList#pushintroduced in Java 6

在運行Maven之前嘗試將JAVA_HOME設置爲正確的版本。

+0

謝謝。 `java -version`顯示了1.6,但`mvn -version`顯示我在$ JAVA_HOME中引用了錯誤的JDK。 – 2009-01-14 18:06:13

2

固定在釋放1.0rc1

所有的Java 6依賴從SnakeYAML刪除。

+0

是否有一些文檔需要添加到我的POM以獲取SnakeYAML的下載?我只是手動安裝JAR。 – 2009-01-17 03:55:33

相關問題