我想编译使用某些Java已弃用的“sun”软件包的Java代码,Gradle编译任务因此错误而失败
error: package com.sun.xml.internal.ws.developer does not exist
我正在使用Hotspot JDK,我可以在那里看到这个包(所以它确实存在 - 在rt.jar文件中) 我还尝试将rt.jar本身添加到Gradle依赖项中:
compile files( 'C:/Program Files/Java/jdk1.7.0_05/jre/lib/rt.jar')
但没有效果
这是我的gradle -v输出:
------------------------------------------------------------
Gradle 1.2
------------------------------------------------------------
Gradle build time: Streda, 2012, september 12 10:46:02 UTC
Groovy: 1.8.6
Ant: Apache Ant(TM) version 1.8.4 compiled on May 22 2012
Ivy: 2.2.0
JVM: 1.7.0_05 (Oracle Corporation 23.1-b03)
OS: Windows 7 6.1 amd64
我还尝试将jaxws-rt.jar添加到classpath中 - 既没有效果也没有效果
我真的很感激任何帮助
感谢
答案 0 :(得分:15)
Oracle的意图是在编译时无法访问这些类。
查看对this javac bug report的回复。
有关可能的解决方案,请参阅Using internal sun classes with javac。 javac -XDignore.symbol.file
开关应该解决这个问题 - 但我是一个gradle newb,并且看不到如何将其提供给gradle's JavaCompile。我最好的猜测是
apply plugin: 'java'
compileJava.options.useAnt = true
compileJava.options.compilerArgs << "-XDignore.symbol.file"
顺便提一下,ct.sym(在链接中引用)似乎是一个jar文件,它将所有可访问的类列为类存根。