LINUX.ORG.RU

Проблема со сборкой tomcat-native через ant

 , , , openembedd


0

1

В общем такая история. Имеется система рецептов на основе openembedded. В ней уже собирается openjdk (1.7) и ant. Но компилятором для сборки этого чуда служит ecj (я так понимаю 1.5)

Теперь при помощи ant мне надо собрать tomcat-native. Задал в рецепте JAVA_HOME и даже PATH поменял, чтобы javac/java файлы из openjdk7 имели большие приоритеты чем ecj.

При выполнение ant я вижу в логах java.home стоит путь именно к нужному jre.

Но получаю ошибку сборки. Такую вот

    [javac] Compliance level '1.5' is incompatible with source level '1.7'. A compliance level '1.7' or better is required

На компе такая проблема решается указанием верного JAVA_HOME но судя по логам, ant подцепил нужный jre, но ошибка осталась...

Есть предположение, что ant.jar и прочие jar файлы которые используются при запуске ant собраны ecj, и это и вызывает такую ошибку. И что их надо пересобрать под 1.7 Так ли это? Или тут какие-то другие грабли?

★★★★★

Ответ на: комментарий от dzidzitop
    <target name="compile" depends="prepare" description="Compile Java sources">
        <mkdir dir="${build.dest}"/>
        <mkdir dir="${build.dest}/java"/>
        <mkdir dir="${build.src}"/>
        <mkdir dir="${build.src}/java"/>
        <tstamp>
            <format property="TODAY" pattern="MMM d yyyy" locale="en"/>
            <format property="TSTAMP" pattern="hh:mm:ss"/>
        </tstamp>
        <!-- Copy static resource files -->
        <filter token="VERSION" value="${version}"/>
        <filter token="VERSION_NUMBER" value="${version.number}"/>
        <filter token="VERSION_BUILT" value="${TODAY} ${TSTAMP}"/>
        <copy todir="${build.src}/java" filtering="yes" encoding="ISO-8859-1">
            <fileset dir="${src.dir}/java">
                <include name="**/*.java"/>
                <include name="**/*.xml"/>
                <include name="**/*.properties"/>
            </fileset>
        </copy>

        <javac srcdir="${build.src}/java"
            destdir="${build.dest}/java"
            source="${compile.source}"
            target="${compile.target}"
            debug="${compile.debug}"
            deprecation="${compile.deprecation}"
            optimize="${compile.optimize}"
            encoding="ISO-8859-1">
            <classpath refid="classpath"/>
        </javac>

        <copy todir="${build.dest}/java" filtering="yes" encoding="ISO-8859-1">
            <fileset dir="${build.src}/java">
                <include name="**/*.xml"/>
                <include name="**/*.properties"/>
            </fileset>
        </copy>
    </target>

Оно?

Dudraug ★★★★★
() автор топика
Ответ на: комментарий от Dudraug

скорее всего ант поднят через jvm 1.5. Нужно проверять что стоіт в JAVA_HOME & path. (через <property env=«foobar»/>).

То какой версіей скомпілен ant - неважно, в случае когда он работает.

java -version что выдаёт с настройкамі для ант?

dzidzitop ★★
()
Ответ на: комментарий от Dudraug

Скорее всего проблема такая что javac от JVM 1.5 грузіт код, который скомпілен под 1.7 - соответственно выдаёт эрор.

Как только javac будет грузіться от 1.7 тогда проблема решітся.

dzidzitop ★★
()
Ответ на: комментарий от dzidzitop

Да, проблема походу именно в этом. Но пока не получается подцепить нужные значения.

Dudraug ★★★★★
() автор топика
Ответ на: комментарий от dzidzitop

Вроде решил, пришлось указать javac явно. Точнее написать скрипт который вычисляет этот путь и патчит build.xml

Dudraug ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.