当前位置: 首页 > 知识库问答 >
问题:

如何为jar定义ivy-config,使其仅用于编译而非运行时

龙永福
2023-03-14

我在已经包含servlet-api的tomcat容器上部署我的应用程序时遇到了一个问题,由于不同的冲突,我的应用程序也依赖于servlet-api。

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

怎么做。

依赖关系org = " Java " name = " servlet-API " rev = " default " conf = " compile "

将conf作为compile传递会导致ivy验证失败。

共有1个答案

邹阳
2023-03-14

听起来像是一个功能上类似于Maven“provided”范围的依赖项。

我的建议是创建额外的配置和映射,例如:

<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"/>
 类似资料:
  • 我有一个用Java 8编译的可执行jar文件,其中包含一个名为< code>app.jar的JavaFX应用程序。 当我安装了Java8时,我可以简单地用运行它。 现在我只安装了Java 11,运行上面的命令会产生以下错误: 因为Java 11不再包含JavaFX。 所以我考虑安装JavaFX。openjfx.org以两种形式提供JavaFx:SDK和JMOD文件。 我认为我不需要SDK,因为我不

  • 问题内容: 我需要使用已“定制”的特殊JRE批处理编译。 Eclipse可以使用此JRE编译类,但是我需要在Eclipse之外制作一个构建脚本。 Eclipse使用什么方法在没有JDK的情况下生成.class文件? 问题答案: Eclipse具有其自己的编译器,其原因如下: 增量编译(可以仅编译项目的更改部分,这可能意味着比刚刚保存的文件数量更多,例如,当您更改某些全局变量时) 即使代码包含错误,

  • 问题内容: 我在非标准位置安装了自己的OpenSSL(出于本示例的目的),并且我希望针对源代码编译Python 3.4时可以以此为基础进行构建。我试过的是这个(目录缩写) 我也尝试了用冒号分隔的路径。 然后,我运行并得到以下信息: 它正在寻找,但是最确定的是: 我不确定自己在做什么错,有什么想法吗? 问题答案: 经过大量的梳理,我设法弄清楚了。这是一堆环境变量…我想我可能做得有些过分,但这基本上可

  • 希望有人能帮助我。我有一个多项目配置,我想检索当前项目本地文件夹中的所有conf="compile"依赖项。所以我的ivy.xml如下所示: 我的 ANT 文件看起来像这样: IVY正确地解决了工件,但是复制/检索工作不正常。我不知道出了什么问题。 有人能帮我,告诉我我做错了什么吗?

  • 我们正在评估Activiti作为一个流程引擎,以取代我们现有的本土工作流引擎。Activiti的功能给我们留下了深刻的印象,特别是与多租户和REST WS相关的功能。 我想这种情况会很常见,其他人也会面临同样的情况。 我知道我在这个问题上很含糊,但在这个阶段,我没有具体的问题可以讨论。

  • 我使用的是IntelliJ IDEA 2017.3。我有一个名为“test”的项目,它在src文件夹下有两个类: ,有打印出“Hello World”的main方法 ,有一个具有编译错误的方法 这两个类没有依赖关系。我试图在main类中运行main(),并将before launch设置为“build,no error check”