【发布时间】:2018-04-15 14:04:37
【问题描述】:
我将 Vue UI 与 Spark Java 后端捆绑在一起。
两个模块都是独立构建的,可以很好地使用以下结构:
project
+-- backend
| +-- src
| | +-- main
| | +-- resources
| | +-- public <= Where the jar is picking the static files
| +-- build
| +-- libs <= Gradle Jar output
+-- ui
+-- dist <= Vue build output
在后端,Gradle 将 backend/src/main/resources/public 捆绑到 Jar /public 中。因此,我从ui/dist 复制到backend/src/main/resources/public 作为jar 任务依赖项。
task copyUI(type: Copy) {
from( '../ui/dist')
into( 'src/main/resources/public')
}
jar.dependsOn( copyUI)
Gradle 正在复制文件,但在创建 jar 之后。
换句话说,我必须创建两次 jar 才能使其正确。
如何指示 Gradle 在打包 /public 之前等待复制完成
我的build.gradle jar 部分看起来像这样
jar {
manifest {
attributes(
'Main-Class': 'tld.domain.MainClass'
)
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
}
}
【问题讨论】:
-
我能想到的一件事是添加cp任务将
ui/dist文件夹中的所有文件复制到backend/src/main/resources文件夹中,你有什么示例项目可以玩吗? -
@chenrui 我这样做了,但结果有点随机,好像 jar 正在触发复制但没有等待其完成
-
你可以有任务依赖来确保排序。
-
@chenrui 这正是我尝试过的。您能否举例说明一下?
标签: gradle vue.js packaging spark-framework