我在tomcat容器上部署我的应用程序时遇到了一个问题,该容器已经包含servlet-api,我的应用程序也依赖于servlet-api,因为它们会发生冲突。
是否有可能为我的应用程序定义ivy,仅在编译期间包含servlet-api而不是运行时。
如何做到这一点。
dependency org =“java”name =“servlet-api”rev =“default”conf =“compile”
传递conf作为编译失败常春藤验证。
答案 0 :(得分:3)
听起来像功能上类似于Maven“提供”范围的依赖。
我的建议是创建一个额外的配置和映射,例如:
<configurations>
<conf name="compile" description="Compile dependencies"/>
<conf name="runtime" description="Runtime dependencies" extends="compile"/>
<conf name="provided" description="Provided dependencies"/>
</configurations>
<dependencies>
<dependency .. conf="compile->default"/>
<dependency .. conf="runtime->default"/>
<dependency .. conf="provided->default"/>
</dependencies>
在构建文件中,用于编译的类路径可以包含额外的依赖项,如下所示:
<ivy:cachepath pathid="compile.path" conf="compile,provided"/>