I'm in the process of converting an existing project from ant to Gradle.
Unfortunately there is a Java class that uses com.sun.xml.internal.bind.DatatypeConverterImpl. For one thing I'm going to look into replacing that usage, but at this point I'm just curious why Gradle cannot find that class, which results in a compilation failure.
The message is
package com.sun.xml.internal.bind does not exist
Note that it compiles fine in eclipse as well as using the javac ant task. JAVA_HOME is set to 1.6.0_27.
So what is unique about Gradle that by default causes it to not find this class and how could someone workaround this issue?
See Java code snippet followed by build.gradle file:
final class Test{
private static final javax.xml.bind.DatatypeConverterInterface DTC = com.sun.xml.internal.bind.DatatypeConverterImpl.theInstance;
.....
DTC.printDateTime(Calendar.getInstance());
}
apply plugin: 'java'
apply plugin: 'application'
mainClassName = "com.foo.bar.Test"
sourceCompatibility = 1.6
version = '5.4.0'
jar {
manifest {
attributes 'Implementation-Title': 'Foo', 'Implementation-Version': version, 'Implementation-Vendor': 'Bar'
}
}
repositories {
mavenCentral()
}
dependencies {
compile group: 'commons-lang', name: 'commons-lang', version: '2.4'
compile group: 'com.google.guava', name: 'guava', version: '10.0.1'
compile group: 'org.hibernate.javax.persistence', name: 'hibernate-jpa-2.0-api', version: '1.0.1.Final'
compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
compile group: 'jdom', name: 'jdom', version: '1.0'
compile group: 'log4j', name: 'log4j', version: '1.2.16'
runtime group: 'antlr', name: 'antlr', version: '2.7.6'
runtime group: 'backport-util-concurrent', name: 'backport-util-concurrent', version: '3.1'
runtime group: 'c3p0', name: 'c3p0', version: '0.9.1.2'
runtime group: 'cglib', name: 'cglib', version: '2.2'
runtime group: 'commons-beanutils', name: 'commons-beanutils', version: '1.8.3'
runtime group: 'commons-codec', name: 'commons-codec', version: '1.3'
runtime group: 'commons-collections', name: 'commons-collections', version: '3.2.1'
runtime group: 'commons-io', name: 'commons-io', version: '1.4'
runtime group: 'commons-logging', name: 'commons-logging', version: '1.1.1'
runtime group: 'dom4j', name: 'dom4j', version: '1.6.1'
runtime group: 'javassist', name: 'javassist', version: '3.12.0.GA'
runtime group: 'javax.transaction', name: 'jta', version: '1.1'
runtime group: 'org.slf4j', name: 'slf4j-api', version: '1.6.2'
runtime group: 'xerces', name: 'xerces', version: '2.4.0'
runtime group: 'xerces', name: 'xercesImpl', version: '2.10.0'
runtime group: 'xml-apis', name: 'xml-apis', version: '2.0.2'
}
EDIT
C:\>gradle -v
------------------------------------------------------------
Gradle 1.0-milestone-3
------------------------------------------------------------
Gradle build time: Monday, 25 April 2011 5:40:11 PM EST
Groovy: 1.7.10
Ant: Apache Ant(TM) version 1.8.2 compiled on December 20 2010
Ivy: 2.2.0
JVM: 1.6.0_27 (Sun Microsystems Inc. 20.2-b06)
OS: Windows XP 5.1 x86
Copy (not move) rt.jar to a location different than <JDK_install_dir>\jre\lib\rt.jar
(for example to c:\rt.jar
) and run your compiler like below:
javac -cp c:\rt.jar your_file.java
Compile with compiler option -XDignore.symbol.file=true
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With