【问题标题】:Maven dependency in a Gradle projectGradle 项目中的 Maven 依赖项
【发布时间】:2013-07-08 22:13:46
【问题描述】:

我正在用 gradle 开发一个项目。到目前为止,我的构建文件几乎是空的:

apply plugin: 'java'
apply plugin: 'eclipse'

version = '0.1'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.+'
}

我的项目依赖于一个 Maven 项目。正是这个项目:http://git.eclipse.org/c/bpmn2/tree/org.eclipse.bpmn2

我已将此项目克隆到我的工作区中,但我不知道在我的 build.gradle 文件中声明依赖项的最佳方法。这是我到目前为止所做的:

dependencies {
    compile files ("C:/path/to/org.eclipse.bpmn2-0.7.0-SNAPSHOT.jar")
}

但是这样我必须手动构建 maven 项目。有人知道进行这种依赖管理的更好方法吗?

我正在使用Eclipse Gradle Integration,我注意到一个有趣的 Eclipse 项目属性:

Gradle - Dependency Management
[x] Remap Jars to maven projects (requires Gradle 1.1 and m2e)

这似乎可以满足我的需要。但是我不知道如何使用这个功能...

提前致谢。

【问题讨论】:

    标签: java eclipse maven gradle


    【解决方案1】:

    如果 Maven 项目在任何 Maven 存储库中都不可用,则 Gradle 无法在任何地方找到它,因此您必须构建它。我至少会 mvn install 它,并告诉 Gradle 在您的本地 Maven 存储库中而不是在特定目录中查找工件,使用

    repositories {
        mavenLocal()
    }
    

    【讨论】:

    • 是的,我试过了,但是在“签名”阶段安装失败。但这是另一个问题。无论如何,我想知道是否有某种方法可以依赖 Maven 项目。我将进一步调查我引用的“重新映射 jars”属性。
    • 没有一流的 Gradle 功能依赖于 Maven 构建。通常,您会通过本地 Maven 存储库交换构建输出。或者更好的是,通过更专用的本地或远程 Maven 存储库而不是 Maven 缓存。
    • 已经快3年了,这还是唯一的选择吗?
    【解决方案2】:

    eclipse-integration-gradle plugin 将 mavenLocal() jar 依赖项替换为 Eclipse 项目依赖项。这是迄今为止我发现的最简单的方法。见:http://forum.springsource.org/showthread.php?139634-How-to-use-quot-remap-Jars-to-maven-projects-quot-feature

    【讨论】:

    • 记下 Kris 的评论,特别是:"...要使该功能正常工作,您必须将 jar 至少发布一次到某个 maven repo。" 我在我读到之前,我一直在想为什么本地工作区分辨率不起作用。一旦我将 maven 项目 1 次发布到我的本地仓库,Gradle 就能够解析我工作区中的副本。
    猜你喜欢
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 2016-07-03
    • 2018-10-20
    • 2015-01-23
    相关资源
    最近更新 更多