首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于分级多模块工程的弹簧平台

用于分级多模块工程的弹簧平台
EN

Stack Overflow用户
提问于 2016-01-24 14:58:43
回答 1查看 1.2K关注 0票数 0

我有一个多模块的分级项目。

Root有以下模块: core、app (依赖核心)、web(依赖app、core)

来自https://plugins.gradle.org/plugin/io.spring.dependency-management

我用过

代码语言:javascript
复制
 plugins {  id "io.spring.dependency-management" version "0.5.4.RELEASE" }

 dependencyManagement {
  imports { 
     mavenBom 'io.spring.platform:platform-bom:+' // 2.0.1.RELEASE
   }
  }

在核心的build.gradle内部。

当我触发

代码语言:javascript
复制
 gradle clean build

在根命令提示符下,成功构建了核心jar,但app 未能通过解决依赖关系的版本。

根目录中的common.gradle

代码语言:javascript
复制
repositories {
    mavenCentral()
    maven { url "http://repo.grails.org/grails/repo/" }
    // mavenLocal()
}

build.gradle of Core

代码语言:javascript
复制
plugins {
   id "io.spring.dependency-management" version "0.5.4.RELEASE"
}

apply from: '../common.gradle'
apply plugin: 'java'

dependencyManagement {
   imports {
    mavenBom 'io.spring.platform:platform-bom:+' // 2.0.1.RELEASE
    }
 }

dependencies {
  compile  'javax.jms:javax.jms-api:+' //2.0
  compile  'javax.mail:mail:+' //1.4.6
  compile  'javax.validation:validation-api' //1.0.0.GA
  compile  'org.springframework.security:spring-security-ldap' //4.0.1.RELEASE
  compile  'org.springframework.data:spring-data-jpa'  //1.9.1.RELEASE
  compile 'org.hibernate.javax.persistence:hibernate-jpa-2.0-api:+' //1.0.0.Final    
 }

app模块的build.gradle

代码语言:javascript
复制
apply plugin: 'java'
apply from: '../common.gradle'
dependencies {
compile project(':Core')
compile 'org.hibernate:hibernate-validator' //5.1.1.Final
compile 'net.sf.ehcache:ehcache'   //2.9.1
compile 'org.springframework:spring-jms' //4.2.3.RELEASE
 compile 'org.springframework:spring-oxm' //3.0.4.RELEASE }

错误消息片段:

失败:生成失败,出现异常。

环境

D:\personal>gradle -v

等级2.9

构建时间: 2015-11-17 07:02:17 UTC构建编号:无修订: b463d7980c40d44c4657dc80025275b84a29e31f

Groovy: 2.4.4

Ant: Apache Ant(TM)版本1.9.3,于2013年12月23日编译

JVM: 1.8.0_20 ( 25.20-b23)

操作系统:Windows76.1 amd64

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-24 15:19:40

您应该将依赖管理插件添加到应用程序模块中。现在,它只在核心模块中可用,但您正在尝试在应用程序模块中使用它的功能。

将插件应用于每个模块可能是个好主意。如果需要,可以将其添加到根build.gradle中:

代码语言:javascript
复制
buildscript {
    repositories { mavenCentral() }
    dependencies { classpath "io.spring.gradle:dependency-management-plugin:0.5.4.RELEASE" }
}

allprojects {
    apply plugin: "io.spring.dependency-management"
}

对评论的答复:

当工件不是平台-bom的一部分时,它们需要显式版本。您可以声明自己的依赖项并在没有显式版本的情况下使用它们:

代码语言:javascript
复制
dependencyManagement {
     dependencies {
          dependency 'org.springframework:spring-core:4.0.3.RELEASE'
          dependency group:'commons-logging', name:'commons-logging', version:'1.1.2'
     }
}

dependencies {
     compile 'org.springframework:spring-core'
}

来源:插件文档

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

https://stackoverflow.com/questions/34977249

复制
相关文章

相似问题

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