Как преодолеть "пакет com.sun.xml.internal.xxx не существует" при компиляции с помощью Gradle?
Я хочу скомпилировать 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 - не действует ни
Я бы очень признателен за любую помощь
спасибо
Ответы
Ответ 1
Это Oracle, чтобы эти классы были недоступны во время компиляции.
См. ответ этот отчет об ошибке javac.
Для вероятного решения см. Использование внутренних классов солнца с помощью javac. Переключатель javac -XDignore.symbol.file
должен исправить это, но я - gradle newb, и не вижу, как передать это gradle JavaCompile. Мое лучшее предположение -
apply plugin: 'java'
compileJava.options.useAnt = true
compileJava.options.compilerArgs << "-XDignore.symbol.file"
Кстати, ct.sym(упоминается в ссылке) представляется jar файлом, который перечисляет, как класс-заглушки, все доступные классы.