2014-04-02 174 views
1

我有一个Eclipse项目,IvyDE管理依赖常春藤+ Eclipse运行依赖部署

我IvyDE是一样的东西:

<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="R01" 
      module="myModule" 
      status="integration"> 
    </info> 

    <configurations> 
     <conf name="compile" description="Used only at compile time; not deployed to the server" /> 
     <conf name="runtime" extends="compile" description="Deployed to the server"/> 
    </configurations> 

    <dependencies> 
     <dependency org="com.sun.jersey" name="jersey-core" rev="1.9.1" conf="runtime"/>    
     <dependency org="javax.ws.rs" name="jsr311-api" rev="1.1.1" conf="compile"/> 
    </dependencies> 
</ivy-module> 

我在运行时

需要在编译时所需的依赖和依存关系

我不知道在eclipse(IvyDE)中是否可以使用apache IVY,但我只想部署到服务器的RUNTIME依赖项。

现在我已经找到了唯一的解决办法是:

  • 集IvyDE解决所有(编译+运行时)的依赖,并设置模块类路径
  • 的[常青藤]库添加到[DeploymentAssembly]在项目属性

这样,所有的依赖关系(包括编译时依赖)部署到服务器...

有任何方式来实现这一目标?

在此先感谢

回答

2

我回答我自己的问题。

最后我设法有两个不同的常春藤管理类路径库,在编译时一个使用,另一个在运行时

detail of the two ivy-managed classpath libraries

诀窍是包括两个ivyDE管理的依赖关系:

add ivyDE managed dependency

一个ivyDE管理的依赖应该是COMPILE配置,另一个用于运行时配置:

ivyDE config selection

(重复运行时配置)

然后,它只是设定的问题:对于COMPILE配置

  • 常春藤的依赖应该是[项目库]
  • 常春藤依赖对于RUNTIME配置应该在[部署程序集]

就是这样!

+0

+1为我的一天。我有完全相同的问题,将Ivy-classpath-container部署运行时库(本例中为websocket-api)到tomcat部署文件夹。将两个配置分成两个不同的常春藤类路径条目解决了这个问题。感谢@futuretelematics建议。 –