spring boot gradle项目,多个模块没有正确创建胖罐

时间:2015-02-22 02:53:44

标签: gradle spring-boot build.gradle

我有一个带有多个模块的spring boot gradle项目。父项目(元数据)只是子项目的根文件夹,有3个子项目(api,security和ui)。

  1. security是一个使用spring安全性的独立项目。这是它的pom

    dependencies {
         compile "org.springframework.boot:spring-boot-starter-security"
         compile "com.att.security:csp-cookies:1.0" 
        compile "javax.servlet:javax.servlet-api"
    }
    
  2. api项目使用安全项目中的一些类,因此它依赖于

    dependencies {
        compile ("org.springframework.boot:spring-boot-starter-data-rest") {
            exclude module: "spring-boot-starter-tomcat"
        }
        compile "org.apache.httpcomponents:httpclient:4.4"
        compile(project(":metadata-security")) 
    } 
    

    3.最终,UI项目是将所有内容组合在一起的可运行项目。

        dependencies {
            compile "org.springframework.boot:spring-boot-starter-thymeleaf"
            compile project(":api:metadata-api-invenio")
            compile(project(":metadata-security"))
        }
    
  3. 当我做gradle构建spring引导时,gradle插件会为所有3个项目生成fat jar。在解压缩jar文件时,似乎所有项目的所有传递deps都可以在fat jar里面的libs文件夹中找到。这很好但是由于某种原因,安全项目jar文件是一个胖jar并且在其lib文件夹中包含它的依赖项,这是不需要的。与此相反,api项目jar不是一个胖的,只包含它的类,因为它的罐子已经在ui fat jar中可用了。

    创建安全项目jar的任何想法与api项目不同。

0 个答案:

没有答案