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

Gradle多模块项目的Spring平台bom

庞意智
2023-03-14

我有一个多模块gradle项目。

Root有以下模块:核心、应用程序(依赖于核心)、web(依赖于应用程序、核心)

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

我曾经用过

 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内。

当我触发

 gradle clean build

在root命令提示符下,CoreJAR已成功构建,但应用程序无法解析依赖项的版本。

common.gradle在根目录

repositories {
    mavenCentral()
    maven { url "http://repo.grails.org/grails/repo/" }
    // mavenLocal()
}

核心build.gradle

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    
 }

应用模块的build.gradle

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:\个人

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

Groovy:2.4.4

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

JVM:1.8.0_20(Oracle公司25.20-b23)

操作系统:Windows 7 6.1 amd64

共有1个答案

冀望
2023-03-14

您应该将依赖项管理插件添加到应用模块。现在它只在核心模块中可用,但是您正在尝试在应用模块中使用它的功能。
将插件应用于每个模块可能是个好主意。如果你愿意,你可以添加到你的根build.gradle:

buildscript {
    repositories { mavenCentral() }
    dependencies { classpath "io.spring.gradle:dependency-management-plugin:0.5.4.RELEASE" }
}

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

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

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'
}

来源:插件文档

 类似资料:
  • 问题内容: 我最近开始使用Gradle并替换了我现有的基于Maven的项目。过去我在使用Maven处理多模块构建时遇到很多问题。在处理多模块水龙头时,Gradle呼吸了新鲜空气,但还不是很完美。 我的项目有以下文件夹布局: 我遇到的问题是“ EnterpriseApp1”和“ ClientApplication”都依赖于CommonLib项目。我不知道如何配置“ EnterpriseApp1”构建

  • 多模块项目具有具有以下依赖关系的模块:web- 我在web模块中添加了sping-boo-gradle-plugin: 当SpringBootGradle插件下载旧的hibernate版本时,我在持久性模块中有重复的版本。 形象 我尝试覆盖web模块中的hibernate依赖项,它正在工作: 形象 为什么插件下载旧的Hibernate版本?是否有任何可能排除旧的Hibernate版本从sping-

  • 我有以下Maven项目结构: i、 e.Project1、Project2和Project3在目录结构上是对等的,它们都是Spring Boot应用程序(JAR)。我想将Project2和Project3视为Project1的子项,而不改变目录结构。当我在父项目上执行相同的maven命令时,我需要在子项目上过渡地执行所有maven命令。而且最重要的是,我应该能够将它们打包到一个JAR文件中。我在谷

  • 我有一个基于java和kotlin的多模块gradle项目。我正在尝试设置声纳分析。我在根项目中配置了sonar,并用CircleCI进行了分析。sonarcloud中的结果仅适用于其中一个子项目。 我的项目结构如下: 项目A/构建。格拉德尔 项目B/构建。格拉德尔 ProjectC/build。格拉德尔 建造。格拉德尔 这是我的根构建。格雷德尔。

  • 主要内容:1- 介绍,2- 示例模型,3-创建项目数学库,4- 创建另一个项目:MathWebApp,5- 创建GradleMain项目,6- 构建项目,7- 运行MathWebApp1- 介绍 本教程文章基于: Eclipse Java EE IDE for Web Developers. Version: Mars.1 Release (4.5.1) 如果您是初学者Gradle的。那么建议先看看初学者Gradle(Gradle Hello world)的文章: http://www.yiib