首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eclipse和IvyDE警告:类路径依赖验证器消息

Eclipse和IvyDE警告:类路径依赖验证器消息
EN

Stack Overflow用户
提问于 2013-07-17 09:42:44
回答 1查看 10.2K关注 0票数 8

我在Eclipse Kepler中创建了一个新的Dynamic Web Project,由于这是我第一次使用IvyDE,所以我放置了一些依赖项来测试它。这是我的ivy.xml:

代码语言:javascript
复制
<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>

依赖关系已经解决,我可以在项目库中看到它们。

但在这之后,我的项目开始给出这样的警告:

代码语言:javascript
复制
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的情况下从项目中删除此警告

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-23 19:56:35

出现警告消息的原因是Eclipse灵活的项目部署机制不知道是否部署Ivy容器引用的库。因此,您需要显式地告诉它您想要做什么,是否将jars部署到WEB-INF/lib。

如果您需要将此容器部署到WEB-INF/,则需要:

click to >右键单击项目,转到properties

  • Select Deployment

  • ,单击Add

  • 选择"Java build path entries"

  • Select Ivy container
  1. Click Finish
  2. 确保Deploy Path设置为Java

如果您查看.classpath设置文件,您将看到添加了如下条目:

代码语言:javascript
复制
<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=ivy-test-portlet&amp;ivyXmlPath=ivy.xml&amp;confs=*&amp;ivySettingsPath=%24%7Bliferay_sdk_dir%3Aivy-test-portlet%7D%2Fivy-settings.xml&amp;loadSettingsOnDemand=false&amp;ivyUserDir=%24%7Bliferay_sdk_dir%3Aivy-test-portlet%7D%2F.ivy&amp;propertyFiles=">
    <attributes>
        <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
</classpathentry>

请注意,已经添加了<attributes>...</attributes>元素。此外,我的Ivy容器路径将与您的不同,因为这是我自己的一个项目的Ivy容器路径。

现在,如果您不需要来将常春藤容器中包含的这些库部署到您的运行时,那么您需要告诉在运行时不依赖这些库。您可以通过在.classpath文件中添加适当的属性来完成此操作。

  1. 打开.classpath文件
  2. 找到常春藤属性的条目添加以下container
  3. Manually元素作为常春藤的子元素

最后一个元素看起来像这样。您的路径将有不同的选项,但关键部分是属性子元素:

代码语言:javascript
复制
<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=ivy-test-portlet&amp;ivyXmlPath=ivy.xml&amp;confs=*&amp;ivySettingsPath=%24%7Bliferay_sdk_dir%3Aivy-test-portlet%7D%2Fivy-settings.xml&amp;loadSettingsOnDemand=false&amp;ivyUserDir=%24%7Bliferay_sdk_dir%3Aivy-test-portlet%7D%2F.ivy&amp;propertyFiles=">
    <attributes>
        <attribute name="org.eclipse.jst.component.nondependency" value=""/>
    </attributes>
</classpathentry>

无论您选择哪一个,您都已经显式地告诉Eclipse在部署期间如何处理这个库容器依赖项。因此,现在您可以重新验证项目(右键单击项目并选择"Validate"),您应该会看到错误消失。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17689747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档