У меня проблемы с компиляцией кода, который имеет зависимость maven от jline-0.9.94.В частности, я компилирую Groovy 1.7.6 , используя его цель Ant по умолчанию, и получаю следующую ошибку:
[...]
-banner:
[echo] Java Runtime Environment version: 1.6.0_22
[echo] Java Runtime Environment vendor: Apple Inc.
[echo] Ant version: Apache Ant version 1.7.1 compiled on June 27 2008
[echo] Operating system name: Mac OS X
[echo] Operating system architecture: x86_64
[echo] Operating system version: 10.6.6
[echo] Base directory: /Users/ldhanson2/tmp/groovy-1.7.6
[echo] Java Home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
[...]
-stagedcompile-groovy:
[groovyc] Compiling 166 source files to /Users/ldhanson2/tmp/groovy-1.7.6/target/classes
[groovyc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
[groovyc] Compile error during compilation with javac.
[groovyc] /Users/ldhanson2/tmp/groovy-1.7.6/src/main/groovy/ui/InteractiveShell.java:222: cannot find symbol
[groovyc] symbol : method setDefaultPrompt(java.lang.String)
[groovyc] location: class jline.ConsoleReader
[groovyc] reader.setDefaultPrompt("groovy> ");
[groovyc] ^
Правильно разрешена зависимость jline, но, как ни странно, метод setDefaultPrompt не позволяетпохоже, присутствуют в jar:
$ javap -classpath target/lib/compile/jline-0.9.94.jar jline.ConsoleReader | grep setDefaultPrompt
$
(в выводе javap также отсутствуют другие методы, но setDefaultPrompt нарушает мою сборку.)
Я попытался стеретьвышел из моего локального репозитория Maven и пытается снова, но безрезультатно.Я также проверил jline jarfile из Maven Central , а также зеркало с такими же результатами.
Как ни странно, я могу скопировать файл jar на другой компьютер (Sun) ивыполните те же самые шаги, и я вижу метод setDefaultPrompt в файле jar, как и ожидалось.Другие также успешно выполнили те же действия на Mac.
Что могло бы произойти на моей машине, что помешало бы инструментальной цепочке Java видеть методы, содержащиеся в файле jar?