首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用变量指定依赖关系版本时生成失败

使用变量指定依赖关系版本时生成失败
EN

Stack Overflow用户
提问于 2012-09-23 11:08:09
回答 2查看 6K关注 0票数 8

我正在尝试将我的maven项目迁移到gradle。我为变量springVersion.中的所有项目指定了spring版本但是,由于某种原因,在一个特定的依赖项org.springframework:spring-web:springVersion.上构建失败。当我直接键入版本时,org.springframework:spring-web:3.1.2.RELEASE会编译所有内容。这是我的build.gradle文件:

代码语言:javascript
运行
复制
subprojects {
    apply plugin: 'java'
    apply plugin: 'eclipse-wtp'

    ext {    
        springVersion = "3.1.2.RELEASE"
    }
    repositories {
       mavenCentral()
    }

    dependencies {
        compile 'org.springframework:spring-context:springVersion'
        compile 'org.springframework:spring-web:springVersion'
        compile 'org.springframework:spring-core:springVersion'
        compile 'org.springframework:spring-beans:springVersion'

        testCompile 'org.springframework:spring-test:3.1.2.RELEASE'
        testCompile 'org.slf4j:slf4j-log4j12:1.6.6'
        testCompile 'junit:junit:4.10'
    }

    version = '1.0'

    jar {
        manifest.attributes provider: 'gradle'
    }
}

错误消息:

代码语言:javascript
运行
复制
* What went wrong:
Could not resolve all dependencies for configuration ':hi-db:compile'.
> Could not find group:org.springframework, module:spring-web, version:springVersion.
  Required by:
      hedgehog-investigator-project:hi-db:1.0

在执行测试时,org.Spring框架:spring:3.1.2.RELEASE也是如此。

是什么引起了他的问题,如何解决?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-23 14:51:08

字面上说,您正在使用springVersion作为版本。声明依赖项的正确方法是:

代码语言:javascript
运行
复制
// notice the double quotes and dollar sign
compile "org.springframework:spring-context:$springVersion"

这是使用Groovy字符串内插,这是Groovy的双引号字符串的一个显著特性。或者,如果您想用Java的方式来实现它:

代码语言:javascript
运行
复制
// could use single-quoted strings here
compile("org.springframework:spring-context:" + springVersion)

我不推荐后者,但希望这有助于解释为什么您的代码不能工作。

票数 29
EN

Stack Overflow用户

发布于 2014-12-18 12:45:35

也可以通过dependencies中的变量定义lib版本,如下所示:

代码语言:javascript
运行
复制
dependencies {

    def tomcatVersion = '7.0.57'

    tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
           "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}"
    tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") {
           exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj'
    }

}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12551812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档