如何使用 gradle 在 Spring-Boot 项目的类路径中包含 zip 内容?

How to include zip content in Spring-Boot project's classpath using gradle?

各位软件工程师,大家好,

我有以下情况。 此时,我有一个 spring-boot 项目,其中包含一个捆绑的 Web 应用程序 (React),其构建的源文件存储在 resources/static 目录下。

文件结构基本上是这样的:

main
|----java
|    |---
|---resources
|    |---static
|        |---static
|            |---css,js...
|        |---index.html
|        |---...
|    |---otherResources

我们已经到了以 Nexus 上 zip 文件的形式上传网络应用程序的地步。

groupId: my.project / artifactId: my-web-app / version: 1.0 / ext: zip

my-web-app-1.0.zip
|---static
    |---css,js...
|---index.html
|---...

现在我想从我的存储库(资源)中删除重复的文件,并用 zip 文件的内容替换它们。

我不确定如何使用 spring-boot 和 gradle 实现此目的,请提供一些指导。

谢谢

您必须加载 zip 和 unzip ,然后替换 source:

main {
    resources {
        srcDir 'src'
    }
}

为了得到完全相同的结构,我做了这样的事情:

build.gradle

configurations {
   webAppZip
}

dependencies {
   // other dependencies
   webAppZip(group: 'my.project', name: 'my-web-app', version: 1.0, ext: 'zip')
}

task unzip(type: Copy) {
    var webAppLocation = "src/main/resources/static"
    delete webAppLocation
    from zipTree(configurations.webAppZip.singleFile)
    into webAppLocation
}

processResources {
    dependsOn(unzip)
}

另外可以将 static 目录添加到 .gitignore 文件。