Mon*_*ded 5 packaging gradle vue.js spark-framework
我将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
Run Code Online (Sandbox Code Playgroud)
在后端,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)
Run Code Online (Sandbox Code Playgroud)
Gradle正在复制文件,但是在创建jar之后。
换句话说,我必须创建两次jar才能正确。
我如何指示Gradle在包装/ public前等待复制完成
我的build.gradle罐子部分看起来像这样
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) }
}
}
Run Code Online (Sandbox Code Playgroud)
虽然你所做的事情对我来说似乎是合乎逻辑的(并且没有错误),但我认为 gradle 没有理由不等到复制完成。我可以建议做一点不同的事情吗?
您可以直接指示任务从块中jar加载文件。这样,您就不必实际将任何内容复制到目录。../ui/distfrompublic
jar {
// ...
from( '../ui/dist')
}
Run Code Online (Sandbox Code Playgroud)
这更好,因为public可以保持生成的代码干净(通过 ui 项目的构建),并且可以节省复制时间(以及因此可能出现的问题)。
最后将jar任务设置dependsOn为 UI 项目的构建任务,以便最新的 dist 可用../ui/dist
| 归档时间: |
|
| 查看次数: |
413 次 |
| 最近记录: |