Компиляция D2RQ с муравьем
D2RQ поставляется с ant
скрипт сборки, который отлично работает. Я могу скомпилировать на linux box, где версия ant по умолчанию - 1.8.2, а версия javac - 1.7.0_121.
Я хочу скомпилировать D2RQ с Java 8. Я скачал ant 1.10, который требует Java 8 2.
Тогда я сталкиваюсь с некоторыми проблемами:
Когда я запускаю ant 1.10 без изменения опции источника (или цели), кажется, что ant работает успешно - даже если в java по умолчанию установлена версия 1.7 (то есть <8) - я ожидал, что он будет жаловаться, что не у вас есть действующая версия Java?
Я пытался изменить
compile
цель в файле build.xml изsource="1.5" target="1.5"
в
source="1.8" target="1.8"
но я получаю ошибку:
compile: [javac] Compiling 171 source files to /home/chris/d2rq/bldsrc [javac] javac: invalid target release: 1.8
Я получаю ту же ошибку, если заменяю "1.8" только на "8", но "1.6" и "1.7" оба работают.
Затем я попробовал другой подход (после немного больше Google) и заменил
source="1.5" target="1.5"
с
fork="yes" executable="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-0.b15.el6_8.x86_64/jre/bin/java"
расположение Java 8 является действительным, но запуск задачи компиляции теперь приводит к
compile: [javac] Compiling 171 source files to /home/chris/d2rq/bldsrc [javac] Unrecognized option: -d [javac] Error: Could not create the Java Virtual Machine. [javac] Error: A fatal exception has occurred. Program will exit.
Я даже не знаю, если -d
является опцией компиляции D2RQ или допустимым флагом Java
Есть ли что-то еще, что я должен пытаться?!
1 ответ
executable
атрибут <javac>
должен указывать на javac
исполняемый, а не java
, Обратите внимание "c"
в конце javac
,
Следующее должно быть изменено, чтобы указать на javac
:
executable="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-0.b15.el6_8.x86_64/jre/bin/java"
куда javac
жизнь зависит от вашего дистрибутива Linux.