我在将我的应用程序部署到已经包含 servlet-api 的 tomcat 容器上时遇到了一个问题,并且我的应用程序也依赖于 servlet-api,因为它们发生了不同的冲突。
是否可以为我的应用程序定义常春藤,仅在编译期间而不是运行时包含 servlet-api。
怎么做。
依赖 org="java" name="servlet-api" rev="default" conf="compile"
将 conf 作为编译传递失败 ivy 验证。
听起来像是功能上类似于 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"/>