Skip to content

Packages accessible from more than one module due to GWT SDK from Eclipse plugin  #504

@RemiFermentin

Description

@RemiFermentin

I have an error on some package since I try to move from java 8 to java 17.

In fact, i compile good through my gradle commands (so I build correctly the project)... But i still have many errors on Eclipse.
I have some errors like:
The package javax.xml.parsers is accessible from more than one module: , java.xml

The main Reason of that this is because on gwt-dev.jar that is included in the GWT SDK from the eclipse plugin. It contains it.

Of course the GWT SDK is in the classpath for the project... and then, I have this error... (as it goes through a conflict)

I am pretty sure somebody ran into this at some point, but i didn't have any clues at the moment.

The easiest solution would be to trick my "gwt-dev.jar" to remove the unnecessary classes but that's not a suitable way to do in the long run...
(like doing:
zip -d gwt-dev.jar "org/w3c/" "org/xml/" "javax/xml/" "netscape/javascript/"
)

If it is possible to exclude during runTime the "xerces" group from the gwt-dev.jar, that would be great, but as it is inside the "SDK" I cannot manipulate as I would like to. (it is not installed through a "normal" Gradle implmentation).

I have some gradle command to "install the SDK" automatically through gradle task (I use "org.wisepersist.gwt" version "1.1.19"):

eclipse {
	project {
		natures 'com.gwtplugins.gwt.eclipse.core.gwtNature'
		buildCommand 'com.gwtplugins.gwt.eclipse.core.gwtProjectValidator'
		buildCommand 'com.gwtplugins.gdt.eclipse.core.webAppProjectValidator'
	}
	classpath {
		containers 'com.gwtplugins.gwt.eclipse.core.GWT_CONTAINER'
	}
	synchronizationTasks gwtpluginsGdtCorePrefs
}
task gwtpluginsGdtCorePrefs() {
	doLast {
		// Create GWT eclipse settings
		delete("${project.projectDir}/.settings/com.gwtplugins.gdt.eclipse.core.prefs")
		File corePrefs = file("${project.projectDir}/.settings/com.gwtplugins.gdt.eclipse.core.prefs")
		corePrefs.getParentFile().mkdirs()
		if (corePrefs.exists()) {
			logger.warn("GWT core preferences already exist and will not be overridden. Use task 'cleanEclipse' first.")
		} else {
			corePrefs.write('eclipse.preferences.version=1\n')
			corePrefs.append('jarsExcludedFromWebInfLib=\n')
			corePrefs.append('warSrcDir=\n')
			corePrefs.append('warSrcDirIsOutput=true\n')
		}
	}
}

Here is the symptom of the issue:
image

If I ending up removing the SDK. Of course, I don't have the compile issue BUT I have the error :
The project 'webapp' does not have any GWT SDKs on its build path.
image

I saw it could be related to: #414 but i am not sure.

I try to summarize the best what I put on: gwtproject/gwt#10051 initially.

But indeed , this is a Eclipse Plugin issue and not a GWT issue per say.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions