2012-07-29 74 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