【问题标题】:Using a project as a compile time dependency without including it's compile time dependencies?使用项目作为编译时依赖项而不包括它的编译时依赖项?
【发布时间】:2011-09-29 14:12:38
【问题描述】:

我有两个 Gradle 项目,项目 A 是战争,项目 B 是 jar。项目 A 依赖于项目 B。项目 B 具有编译依赖项 C。当我构建项目 B 时,编译依赖项 C 不包含在生成的 jar 中,这是我所期望的。当我构建项目 A 时,项目 B 与编译依赖项 C 一起包含在我的 war 的 lib 目录中。

我想要的是将项目 B 的 jar 任务的输出包含在我的 war 文件的 lib 目录中,我该怎么做?我在下面粘贴了我的 Gradle 构建文件的相关片段。

项目A

apply plugin: 'war'
dependencies {
   compile project(':B') 
}

项目B

apply plugin: 'java'
dependencies {
   compile (group: 'org.apache.openejb', name: 'C', version: '5.0-3') 
}

【问题讨论】:

  • 我在理解您的意思时遇到了一些麻烦。你说你在战争的lib目录中得到B。然后你说你想在war的lib目录下有B。目前尚不清楚缺少什么。

标签: build-automation gradle


【解决方案1】:

在项目 A 中,您可以使用提供的编译配置来排除一些传递依赖项,使其不包含在 WAR 中:

dependencies {
   compile project(':B') 
   providedCompile (group: 'org.apache.openejb', name: 'C', version: '5.0-3') 
}

您可以在 WAR 插件documentation 中了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 2012-01-11
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    相关资源
    最近更新 更多