[英]Eclipse and IvyDE warning: Classpath Dependency Validator Message
我在Eclipse Kepler中创建了一个新的Dynamic Web Project,这是我第一次使用IvyDE,因此我将一些依赖项进行了测试。 这是我的ivy.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
organisation="net.myorg"
module="mymodule"
status="integration">
</info>
<dependencies>
<dependency org="org.hibernate" name="hibernate-entitymanager" rev="4.2.3.Final"></dependency>
<dependency name="log4j" rev="1.2.17" org="log4j"></dependency>
</dependencies>
</ivy-module>
依赖关系已解决,我可以在项目库中看到它们。
但是之后,我的项目开始发出以下警告:
Description Resource Path Location Type
Classpath entry org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=myproject&ivyXmlPath=ivy.xml&confs=*&acceptedTypes=jar%2Cbundle%2Cejb%2Cmaven-plugin&alphaOrder=false&resolveInWorkspace=true&retrievedClasspath=true&retrievedClasspathPattern=lib%2F%5Btype%5Ds%2F%5Bartifact%5D-%5Brevision%5D.%5Bext%5D&retrievedClasspathSync=true&retrievedClasspathTypes=* will not be exported or published. Runtime ClassNotFoundExceptions may result. myproject P/myproject Classpath Dependency Validator Message
因此,如果我理解正确的话,Eclipse会警告我,类路径中的IvyDE条目与构建项目中的资源不对应。 我想这是预期的行为,如果是这样,是否有一种方法可以从项目中删除此警告,而不禁用每个Classpath Dependency Validator Message
?
警告消息的原因是Eclipse灵活的项目部署机制不知道是否部署Ivy容器引用的库。 因此,您需要明确告知您要执行的操作,然后将jar部署到WEB-INF / lib。
如果需要将此容器部署到WEB-INF / lib,则需要:
如果查看.classpath设置文件,将会看到这样添加一个条目:
<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=ivy-test-portlet&ivyXmlPath=ivy.xml&confs=*&ivySettingsPath=%24%7Bliferay_sdk_dir%3Aivy-test-portlet%7D%2Fivy-settings.xml&loadSettingsOnDemand=false&ivyUserDir=%24%7Bliferay_sdk_dir%3Aivy-test-portlet%7D%2F.ivy&propertyFiles=">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
注意,添加了<attributes>...</attributes>
元素。 我的Ivy容器路径也将与您的不同,因为这是我自己的项目之一的Ivy容器路径。
现在,如果您不需要将Ivy容器中包含的这些库部署到您的运行时,则需要告诉Eclipse在运行时不依赖于这些库。 您可以通过在.classpath文件中添加适当的属性来实现。
最后一个元素看起来像这样。 您的路径将具有不同的选项,但关键部分是属性子元素:
<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=ivy-test-portlet&ivyXmlPath=ivy.xml&confs=*&ivySettingsPath=%24%7Bliferay_sdk_dir%3Aivy-test-portlet%7D%2Fivy-settings.xml&loadSettingsOnDemand=false&ivyUserDir=%24%7Bliferay_sdk_dir%3Aivy-test-portlet%7D%2F.ivy&propertyFiles=">
<attributes>
<attribute name="org.eclipse.jst.component.nondependency" value=""/>
</attributes>
</classpathentry>
无论选择哪种方法,您都已明确告诉Eclipse如何在部署期间处理此库容器依赖性。 因此,现在您可以重新验证项目(右键单击项目,然后选择“验证”),您应该会看到错误消失了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.