我是一个Gradle初学者,我正在努力将前端发行版构建文件夹包含在后端jar中(我使用Sping Boot ,前端是一个离子应用程序)。在backend.gradle中,我配置了jar-Task,它应该将前端构建文件夹(称为www)包含到后端的构建文件夹中。jar任务将继续运行,但是所需的构件并不存在于backend-build文件夹中,因此也不存在于最终jar中。我很乐意得到任何帮助。
项目结构:
project
build.gradle
settings.gradle
backend
--> backend.gradle
frontend
--> frontend.gradle
settings.gradle
include 'backend'
include 'frontend'
rootProject.children.each {
it.buildFileName = it.name + '.gradle'
}
build.gradle
allprojects {
buildscript {
repositories {
mavenCentral()
}
}
apply plugin: 'idea'
repositories {
mavenCentral()
}
}
frontend.gradle
plugins {
id "com.moowork.node" version "1.2.0"
}
task clean(dependsOn: 'npm_run_clean') {
}
task build(dependsOn: 'npm_run_build') {
}
backend.gradle
buildscript {
ext {
springBootVersion = '1.5.8.RELEASE'
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
group = 'ch.renewinkler'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
jar {
from('frontend/www') {
into('public')
}
}
processResources.dependsOn(':frontend:build')
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
2条答案
按热度按时间a7qyws3x1#
你需要告诉gradle jar任务依赖于前端的build任务,否则它可能会在build任务之前运行jar文件,因此没有什么可以包含在jar中。
通过项目名称引用项目也是一个更好的主意,而不是使用绝对路径:
lhcgjxsq2#
当创建文件夹时,您是否也获得了dist文件夹?