0

我在将我的应用程序部署到已经包含 servlet-api 的 tomcat 容器上时遇到了一个问题,并且我的应用程序也依赖于 servlet-api,因为它们发生了不同的冲突。

是否可以为我的应用程序定义常春藤,仅在编译期间而不是运行时包含 servlet-api。

怎么做。

依赖 org="java" name="servlet-api" rev="default" conf="compile"

将 conf 作为编译传递失败 ivy 验证。

4

1 回答 1

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"/>
于 2013-03-07T23:33:33.950 回答