首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用gradle将客户端和服务器构建合并到一个jar中?

如何使用gradle将客户端和服务器构建合并到一个jar中?
EN

Stack Overflow用户
提问于 2021-01-10 01:48:53
回答 1查看 121关注 0票数 0

我有一个具有以下结构的项目:

代码语言:javascript
复制
web-client/     # Angular Client
  build/
  build.gradle  

server/         # Spring Boot Application
  build/
  build.gradle  

build.gradle    # The "parent" project. Works on web-client and server

parent应该将编译的web应用程序复制到server/build/classes/static中,这样它就会被复制到最终jar/BOOT-INF/classes/中,在那里它将由Spring Boot服务器提供服务。

到目前为止,除了最后一部分之外,一切都在正常工作。这些文件也不会复制到最终的jar中,我认为这是因为它在执行复制任务时已经构建好了。

这是我当前使用的脚本:

代码语言:javascript
复制
task buildWebApp {
    outputs.dir('mobile-client/build')
    dependsOn ':mobile-client:buildWebApp'
}

task copyWebApp {
    doFirst {
        copy {
            from 'mobile-client/build'
            into 'server/build/classes/static'
        }
    }
    dependsOn tasks.buildWebApp
}

# assemble.dependsOn copyWebApp
build.dependsOn copyWebApp

如何确保这些来自mobile-client/build的文件最终出现在server的最终jar中

EN

回答 1

Stack Overflow用户

发布于 2021-01-10 23:24:43

我不能保证它当前的功能,但这是我几年前在我的一个项目中使用的。我确实使用了单独的gradle子模块来构建前端,然后使用单独的模块来构建后端,其中我将前端作为JAR:

代码语言:javascript
复制
root gradle project -> frontend
                    -> backend

前端静态(使用/ build.gradle /**构建前端JAR )

代码语言:javascript
复制
apply plugin: "com.moowork.node"
apply plugin: 'java'

node {
  version = '8.9.3'
  download = true
}

def webResources = "$buildDir/web-resources/main"

sourceSets {
  main {
    output.dir(webResources, builtBy: 'buildWeb')
  }
}

task webInstall(type: NpmTask) {
  args = ['install']
}

task buildWeb(type: NpmTask) {
  dependsOn webInstall
  args = ['run', 'build']
}

build.dependsOn buildWeb

后端build.gradle

代码语言:javascript
复制
apply plugin: 'spring-boot-gradle-plugin'
apply plugin: 'idea'

dependencies {
  compile project(':frontend')
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65645773

复制
相关文章

相似问题

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