Проблемы со сборкой с помощью Maven и GeoTools (com.sun.javadoc)

Я пытаюсь собрать GeoTools 8.0-RC2 (сам по себе, а не учебный проект или тому подобное) с Maven 3.0.4. Когда я запускаю mvn install в корневом pom, он работает нормально, пока не возникает ошибка сборки, касающаяся com.sun.javadoc и com.sun.tools.doclets.

Полная трассировка ошибки выглядит следующим образом:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project javadoc: Compilation failure: Compilation failure:
[ERROR] \GeoTools\GIT\build\maven\javadoc\src\main\java\org\geotools\maven\taglet\Source.java:[22,22] error: package com.sun.javadoc does not exist
[ERROR] \GeoTools\GIT\build\maven\javadoc\src\main\java\org\geotools\maven\taglet\Source.java:[23,28] error: package com.sun.tools.doclets does not exist
[ERROR] \GeoTools\GIT\build\maven\javadoc\src\main\java\org\geotools\maven\taglet\Source.java:[33,37] error: cannot find symbol
[ERROR] \GeoTools\GIT\build\maven\javadoc\src\main\java\org\geotools\maven\taglet\Source.java:[40,50] error: cannot find symbol
[ERROR] \GeoTools\GIT\build\maven\javadoc\src\main\java\org\geotools\maven\taglet\Source.java:[160,33] error: cannot find symbol
[ERROR] \GeoTools\GIT\build\maven\javadoc\src\main\java\org\geotools\maven\taglet\Source.java:[171,33] error: cannot find symbol
[ERROR] \GeoTools\GIT\build\maven\javadoc\src\main\java\org\geotools\maven\taglet\Tutorial.java:[20,22] error: package com.sun.javadoc does not exist
[ERROR] \GeoTools\GIT\build\maven\javadoc\src\main\java\org\geotools\maven\taglet\Tutorial.java:[21,28] error: package com.sun.tools.doclets does not exist
[ERROR] \GeoTools\GIT\build\maven\javadoc\src\main\java\org\geotools\maven\taglet\Tutorial.java:[32,39] error: cannot find symbol
[ERROR] \GeoTools\GIT\build\maven\javadoc\src\main\java\org\geotools\maven\taglet\Tutorial.java:[38,49] error: cannot find symbol
[ERROR] \GeoTools\GIT\build\maven\javadoc\src\main\java\org\geotools\maven\taglet\Tutorial.java:[130,33] error: cannot find symbol
[ERROR] \GeoTools\GIT\build\maven\javadoc\src\main\java\org\geotools\maven\taglet\Tutorial.java:[141,33] error: cannot find symbol
[ERROR] \GeoTools\GIT\build\maven\javadoc\src\main\java\org\geotools\maven\taglet\Source.java:[161,28] error: cannot find symbol
[ERROR] \GeoTools\GIT\build\maven\javadoc\src\main\java\org\geotools\maven\taglet\Tutorial.java:[131,28] error: cannot find symbol

К сожалению, я не нашел решения в Google, но взглянул на lib\tools.jar в моем JDK 1.7.0 u5 и обнаружил там отсутствующие пакеты. Помпа, которая зависит от tools.jar, это build\maven\javadoc\pom.xml. Существует два профиля: один для SUN JDK, а другой для IBM JDK:

<profile>
    <id>default-tools.jar</id>
    <activation>
        <property>
            <name>java.vendor</name>
            <value>Sun Microsystems Inc.</value>
        </property>
    </activation>
    <dependencies>
        <dependency>
            <groupId>com.sun</groupId>
            <artifactId>tools</artifactId>
            <version>1.5</version>
            <scope>system</scope>
            <systemPath>${java.home}/../lib/tools.jar</systemPath>
  <!-- Note: a ${tools.jar} variable exists - we should try to use it. -->
        </dependency>
    </dependencies>
</profile>

У меня Windows 7 x64, и мой %JAVA_HOME% установлен на C:\Program Files\Java\jdk1.7.0_05. Я пытался возиться с этим, но не повезло. Ошибка остается. Может ли быть проблема Sun Microsystems Inc., потому что теперь это от Oracle, или <version>1.5</version>, потому что у меня установлена ​​версия 1.7?

Было бы очень хорошо, если бы кто-нибудь мог помочь мне здесь!

С уважением, Алекс


person alexfr    schedule 29.07.2012    source источник
comment
Можете ли вы попробовать с JDK 1.5 или изменить pom, чтобы указать версию на 1.7   -  person Ajay George    schedule 29.07.2012
comment
Я уже пробовал менять Sun Microsystems Inc. на Oracle, <version>1.5</version> на <version>1.7</version> и <systemPath>${java.home}/../lib/tools.jar</systemPath> на <systemPath>${java.home}/lib/tools.jar</systemPath> в разных комбинациях, но все равно безуспешно.   -  person alexfr    schedule 29.07.2012
comment
Это может помочь. Вместо Oracle попробуйте Oracle Corporation. sunnytalkstech.blogspot.in/2011/08/   -  person Ajay George    schedule 29.07.2012
comment
Безумный! Это действительно сработало! Похоже, что GeoTools до сих пор официально не поддерживает JDK 7. Большое спасибо за подсказку! Пожалуйста, добавьте свой комментарий в качестве ответа, чтобы я мог принять его.   -  person alexfr    schedule 29.07.2012


Ответы (1)


Это может помочь. Вместо Oracle попробуйте Oracle Corporation. http://sunnytalkstech.blogspot.in/2011/08/maven-dependency-for-toolsjar-in-jdk7.html

person Ajay George    schedule 29.07.2012
comment
Приложение: Описанное решение является лишь обходным путем, позволяющим частично собрать GeoTools с JDK 7 от Oracle. К сожалению, когда вы пытаетесь собрать весь проект (root pom), некоторые зависимости не собираются из-за проблем совместимости с JDK 7. официально поддерживаемый JDK GeoTools 8 (текущая версия разработки) — это JDK 6. Поэтому просто установите 1.6.0 u33, укажите на него свой JAVA_HOME, и сборка будет работать из коробки. - person alexfr; 29.07.2012