Проблемы со сборкой эвкалипта на Ubuntu 12.04

Я установил Ubuntu 12.04 (точную) 64-разрядную вместе с ОС MacBookPro, процессор которой: Intel® Core™ i5-3210M CPU @ 2,50 ГГц × 4. Затем я несколько дней пытаюсь установить eucalyptus 3.2.0, следуя этому руководство.

Когда я дошел до этапа сборки, он потерпел неудачу из-за этой проблемы:

 BUILD FAILED
/home/asma/eucalyptus-3.2.0/clc/build.xml:111: The following error occurred while executing this line:
java.lang.UnsupportedClassVersionError: org/codehaus/groovy/ant/Groovy : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
    at org.apache.tools.ant.AntClassLoader.defineClassFromData(AntClassLoader.java:1124)
    at org.apache.tools.ant.AntClassLoader.getClassFromStream(AntClassLoader.java:1295)
    at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1351)
    at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1311)
    at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1064)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
    at org.apache.tools.ant.AntTypeDefinition.innerGetTypeClass(AntTypeDefinition.java:194)
    at org.apache.tools.ant.AntTypeDefinition.getTypeClass(AntTypeDefinition.java:168)
    at org.apache.tools.ant.AntTypeDefinition.icreate(AntTypeDefinition.java:215)
    at org.apache.tools.ant.AntTypeDefinition.create(AntTypeDefinition.java:206)
    at org.apache.tools.ant.ComponentHelper.createComponent(ComponentHelper.java:286)
    at org.apache.tools.ant.ComponentHelper.createComponent(ComponentHelper.java:264)
    at org.apache.tools.ant.UnknownElement.makeObject(UnknownElement.java:417)
    at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:163)
    at org.apache.tools.ant.Task.perform(Task.java:347)
    at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:622)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:622)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:390)
    at org.apache.tools.ant.Target.performTasks(Target.java:411)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
    at org.apache.tools.ant.Main.runBuild(Main.java:809)
    at org.apache.tools.ant.Main.startAnt(Main.java:217)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

Total time: 0 seconds
make[1]: *** [build] Error 1
make[1]: Leaving directory `/home/asma/eucalyptus-3.2.0/clc'
make: *** [build] Error 2

Конечно, я искал и гуглил, но все решения утверждают, что версии java и javac одинаковы, поскольку эта проблема возникает, когда версия компиляции и запуска java конфликтует. У меня есть та же версия для java и javac, которая:

asma@asma-MacBookPro:~$ java -version
java version "1.6.0_31"
OpenJDK Runtime Environment (IcedTea6 1.13.3) (6b31-1.13.3-1ubuntu1~0.12.04.2)
OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)
asma@asma-MacBookPro:~$ javac -version 
javac 1.6.0_31

Вот версия муравья:

asma@asma-MacBookPro:~$ ant -version 
Apache Ant(TM) version 1.8.2 compiled on December 3 2011

У меня сейчас на Ubuntu установлен только openjdk-6-jdk, и я удалил java7. Также я пытался иметь только openjdk-7-jdk, но сборка все равно не удалась.

В чем может быть причина этой ошибки? Любые мысли или предложения? Могу ли я изменить build.xml?


person Asma    schedule 02.08.2014    source источник
comment
Какая версия заводной? А какая баночка?   -  person tim_yates    schedule 02.08.2014
comment
Версия Groovy: 1.8.6 JVM: 1.6.0_31 Поставщик: Sun Microsystems Inc. ОС: Linux, что вы подразумеваете под jar?   -  person Asma    schedule 02.08.2014
comment
Ваш ant-скрипт должен откуда-то извлекать заводную банку зависимостей или банки   -  person tim_yates    schedule 02.08.2014
comment
спасибо за ваш ответ. Итак, какие действия я должен предпринять, чтобы избавиться от этой ошибки? не могли бы вы сказать мне, если у вас есть знания об этом? спасибо tim_yates   -  person Asma    schedule 02.08.2014
comment
В сборке используется groovy-all-2.2.1-indy, созданный для Java 7.   -  person tim_yates    schedule 03.08.2014
comment
это означает, что мне нужно обновить groovy до 2.2.1 и установить java7 вместо java 6? правильно ?   -  person Asma    schedule 03.08.2014
comment
Вы должны просто иметь возможность использовать версию non indy groovy-all-2.2.1.jar.   -  person tim_yates    schedule 03.08.2014
comment
привет tim_yates. Спасибо тебе за помощь. Я заметил, что файл groovy-all-2.2.1-indy.jar находится в каталоге eucalyptus/clc/lib и возникает в результате сборки файла eucalyptus. как мы можем предотвратить это? как не в состоянии это . Я могу показать вам build.xml, если это поможет.   -  person Asma    schedule 03.08.2014


Ответы (1)


В процессе сборки Eucalyptus он выполнит проверку подмодуля github.com/euaclyptus/eucalyptus-cloud-libs, который содержит файлы jar, необходимые для сборки из исходного кода. При сборке старых версий Eucalyptus не всегда проверяется правильный тег/ветвь для облачных библиотек. Если вы зайдете в eucalyptus/clc/lib и сделаете git status, вы сможете увидеть, какая ветка извлечена. Если это #testing, то сборка не будет работать, потому что зависимости сильно изменились с версии 3.2.0. Я считаю, что для 3.2.2 есть тег, который может работать правильно. Из-за того, как процесс сборки выполняет извлечение в этой папке, это может быть не так просто, как git checkout. Вместо этого вам, возможно, придется удалить эту папку и вручную извлечь репозиторий eucalyptus-cloud-libs, который является большой загрузкой. .

Кстати, при работе над Eucalyptus мы используем Java7, поэтому вам лучше установить ее вместо 6.

Если вы собираете из исходного кода, я бы посоветовал попробовать собрать из #testing, а не из более старой версии. Хотя Ubuntu не поддерживается, в прошлом я собирал Eucalyptus и запускал его на Ubuntu. Это руководство так же хорошо, как и любое другое, но будьте готовы к некоторым хакерским операциям. Я смутно помню, как комментировал некоторые модульные тесты в файлах Makefile, чтобы сборка прошла успешно.

person Wes Wannemacher    schedule 04.08.2014
comment
Большое спасибо Уэс. На самом деле я переключился на Faststart eucalyptus, который проще в установке и экономит время. Следуя этому руководству, я столкнулся со многими проблемами. Еще раз спасибо. - person Asma; 06.08.2014