我将 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
因此,我从intobackend/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) }
}
}