【问题标题】:how to define ivy config for jar to be included only for compile not runtime如何为 jar 定义 ivy 配置仅用于编译而不是运行时
【发布时间】:2013-02-23 07:45:05
【问题描述】:

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

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

如何做到这一点。

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

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

【问题讨论】:

  • 包含 ivy.xml 文件会很有帮助。您需要定义该配置。

标签: java ivy


【解决方案1】:

听起来像一个功能类似于 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"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2016-06-20
    • 2014-05-30
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    相关资源
    最近更新 更多