creo que tenemos una configuración similar a lo que usted está tratando g para configurar. Asegúrese de marcar "Resolver dependencias en el espacio de trabajo" en el panel Preferencias> Ivy> Classpath.
Con la configuración a continuación, al agregar WarProject a Tomcat, debería ver un enlace [+] en el nodo WarProject y expandirlo debería mostrar el nodo JarProject. Al publicar, debe ver JarProject.jar
y cualquier jar definido en ivy.xml
agregado a wtpwebapps/WarProject/WEB-INF/lib
en el directorio de publicación de Tomcat, que para mí está en .metadata/.plugins/org.eclipse.wst.server.core/tmp0
en mi directorio del espacio de trabajo.
del proyecto Jar .settings/org.eclipse.wst.common.project.facet.core.xml:
<faceted-project>
<fixed facet="jst.java" />
<fixed facet="jst.utility" />
<installed facet="jst.java" version="1.6" />
<installed facet="jst.utility" version="1.0" />
</faceted-project>
del proyecto Jar .settings/org.eclipse.wst.common.component:
ivy.xml
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="JarProject">
<wb-resource deploy-path="/" source-path="/src" />
<wb-resource deploy-path="/" source-path="/resources" />
</wb-module>
</project-modules>
del proyecto Jar: Guerra del proyecto
<ivy-module
version="2.0"
xmlns:m="http://ant.apache.org/ivy/maven"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info module="JarProject" organisation="org.whatever" revision="${revision}" />
<configurations>
<conf name="local" visibility="private"
description="Artifacts necessary for local development and testing" />
<conf name="master" />
<conf name="sources" />
</configurations>
<publications>
<artifact ext="pom" type="pom" />
<artifact ext="jar" type="jar" conf="master" />
<artifact ext="jar" type="source" conf="sources" m:classifier="sources" />
</publications>
<dependencies defaultconfmapping="*->master(default),runtime()">
<dependency org="org.jdom" name="jdom" rev="1.0" conf="master" />
<dependency org="junit" name="junit-dep" rev="4.9" conf="local" />
</dependencies>
</ivy-module>
.settings/org.eclipse.wst.common.project.facet.core.xml:
<faceted-project>
<fixed facet="jst.java" />
<fixed facet="jst.web" />
<installed facet="jst.java" version="1.6" />
<installed facet="jst.web" version="2.5" />
<runtime name="Apache Tomcat v6.0" />
del proyecto Guerra .settings/org.eclipse.wst.common.component:
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="WarProject">
<property name="context-root" value="WarProject" />
<wb-resource deploy-path="/" source-path="/WebContent" />
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src" />
<wb-resource deploy-path="/WEB-INF/classes" source-path="/resources" />
</wb-module>
</project-modules>
.classpath
del proyecto de la guerra:
<classpath>
<classpathentry kind="output" path="bin" />
<classpathentry kind="src" path="src" />
<classpathentry kind="src" path="resources" />
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<attributes>
<attribute name="owner.project.facets" value="jst.java" />
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0">
<attributes>
<attribute name="owner.project.facets" value="jst.web" />
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?ivyXmlPath=ivy.xml&confs=local&ivySettingsPath=%24%7Bworkspace_loc%3AWarProject%2Fivysettings.xml%7D&loadSettingsOnDemand=false&propertyFiles=" />
<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?ivyXmlPath=ivy.xml&confs=master&ivySettingsPath=%24%7Bworkspace_loc%3AWarProject%2Fivysettings.xml%7D&loadSettingsOnDemand=false&propertyFiles=">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib" />
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container" />
</classpath>
hiedra
del proyecto de guerra .xml:
<ivy-module
version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info module="WarProject" organisation="org.whatever" revision="${revision}" />
<configurations>
<conf name="local" visibility="private"
description="Artifacts necessary for local development and testing" />
<conf name="master" />
</configurations>
<dependencies defaultconfmapping="*->master(default),runtime()">
<dependency org="org.whatever" name="JarProject" rev="latest.integration" changing="true" conf="master" />
<!-- and other dependencies of the war project -->
</dependencies>
</ivy-module>
También me pareció posible omitir el atributo org.eclipse.jst.component.dependency
en la entrada de la ruta de clases para el contenedor ruta de clase de la hiedra y en lugar de agregarlo al archivo org.eclipse.wst.common.component
así:
<dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/con/org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?ivyXmlPath=ivy.xml&confs=master&ivySettingsPath=%24%7Bworkspace_loc%3AWarProject%2Fivysettings.xml%7D&loadSettingsOnDemand=false&propertyFiles=">
<dependency-type>consumes</dependency-type>
</dependent-module>
Pero bajo esta alternativa, el webapp desplegada no se actualizaba muy bien si cambiaba el archivo ivy.xml y ejecutaba la resolución. Además, cualquier cambio en los parámetros de URL a Ivy debía mantenerse sincronizado con los dos archivos o no se contribuiría nada al ensamblaje de implementación.
No hay idea de cómo configurar todo esto a través de la interfaz de usuario ...
Gracias por tomarse el tiempo para ayudar. Esto no es exactamente lo que estoy buscando, realmente no necesito que IvyDE me resuelva, hacer referencia a ellos en el caché local es correcto y WTP deploy los implementará desde la Biblioteca creada por IvyDE. El problema es que las bibliotecas a las que hace referencia el proyecto 'modules' se implementarán en el jar WTP crea para el proyecto 'modules' en lugar de en el WEB-INF/lib de la guerra para el proyecto 'web'. Estoy tratando de encontrar una solución que no me obligue a fusionar el proyecto 'módulo' en el proyecto 'web' solo para que la implementación WTP funcione. – Victor