When using eclipse-wtp plugin, the archiveName attribute missing from dependent-module entry in org.eclipse.wst.common.component

I have a web app project that depends on a library project.

I set up a multi-project build for it. The web app build uses the eclipse-wtp plugin.

Everything about this build appears to work, however:

when the eclipse target is run on the web project, eclipse-wtp creates a dependent-module entry in .settings/org.eclipse.wst.common.component for the library (as expected), but this entry is missing the archiveName attribute which is required by eclipse.

Actual:

<dependent-module deploy-path="/WEB-INF/lib" handle="module:/resource/CoreLib/CoreLib">

Eclipse needs:

<dependent-module archiveName="CoreLib.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/CoreLib/CoreLib">

This causes eclipse to give me an “unfound resource” warning in the project Deployment Assembly and “class not found” on any reference in the library at runtime.

I researched this down to the source code in org.gradle.api.tasks.ide.eclipse.EclipseWtp. Where dependent-modules get created, it doesn’t appear that archiveName is ever used.

Does anyone have a work around for this?