2012-07-29 82 views
2

我正在尝试使用Maven 3.0.4构建GeoTools 8.0-RC2(本身,不是教程项目之类的)。当我在根pom上运行mvn install时,它似乎工作正常,直到发生关于com.sun.javadoccom.sun.tools.doclets的构建错误。Maven和GeoTools构建问题(com.sun.javadoc)

完整的错误跟踪如下:

[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

不幸的是,我没有找到与谷歌的解决方案,但在我的JDK 1.7.0 U5看了看lib\tools.jar,发现了丢失的包有。取决于tools.jar的pom是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版本?

如果有人能够帮助我,这里真的很棒!

问候, 亚历

+0

你可以尝试用两种JDK 1.5或改变POM的版本到1.7 – 2012-07-29 16:00:54

+0

我已经尝试改变'Sun微Inc.'到'Oracle',' 1.5'指向' 1.7'和' $ {java.home} /../ lib/tools.jar'到' $ {java.home} /lib/tools.jar'以不同的组合,但仍然没有运气。 – alexfr 2012-07-29 16:11:41

+1

这可能会有所帮助。而不仅仅是甲骨文公司。 http://sunnytalkstech.blogspot.in/2011/08/maven-dependency-for-toolsjar-in-jdk7.html – 2012-07-29 16:16:07

回答

2

这可能会有帮助。而不仅仅是甲骨文公司。 http://sunnytalkstech.blogspot.in/2011/08/maven-dependency-for-toolsjar-in-jdk7.html

+2

附录:所描述的解决方案只是一个解决方法,使它可以用Oracle的JDK 7构建GeoTools。不幸的是,当您尝试构建整个项目(root pom)时,一些依赖性无法构建,因为与JDK 7的兼容性问题。由GeoTools 8(当前开发版本)官方支持的JDK是JDK 6.因此,只需安装1.6.0 u33,将您的JAVA_HOME指向它,并且构建即可使用。 – alexfr 2012-07-29 17:48:17

+0

这也解决了我的一个问题。 :) – 2014-09-17 08:22:51