java 在Sping Boot 中使用build.gradle.kts使用JAR打包常规文件

o0lyfsai  于 2023-06-28  发布在  Java
关注(0)|答案(1)|浏览(279)
    • 问题:**如何使用build.gradle.kts在JAR中包含常规. txt配置文件?
    • 问题:**

我需要创建一个JAR,它可以独立于文件位置运行。我使用txt配置文件来设置Spring Boot应用程序。这些文件在main/resources/dummy/*下。
当我构建应用程序时,dummy/*下的任何内容都不会添加到JAR中。
下面是文件结构的可视化:

.
└── src
    └── main
        ├── kotlin
        │   └──<Source code> 
        └── resources
            ├── application.properties
            ├── dummy
            |   ├── cache
            |   │   ├── dataExample1.cache
            |   │   └── dataExample2.cache
            |   └── data
            |       ├── dataExample3.txt
            |       └── dataExample4.txt
            └── static
                └── <Static files>
vlju58qv

vlju58qv1#

我认为默认情况下,bootJar任务只直接复制资源下的文件,以及名为“public”或“static”的文件夹。测试的一个好方法是将dummy文件夹放在static文件夹下,看看它是否自动包含在内。如果您希望将未命名的文件夹添加到jar中,则需要在gradle构建中将复制任务添加到bootJar任务。这是一个例子(在gradle7.3中),我将asciidoctor输出复制到jar的static/docs目录中

bootJar {
        dependsOn(asciidoctor)
        if (project.hasProperty("doc")) {
            from ("${asciidoctor.get().outputDir}") {
                into("static/docs")
            }
        }
    }

你的可能看起来像(语法可能是错误的,但希望你得到的想法),其中应该包括一切

bootJar {
      from("src/main/resources") {
          include("**/*.*")
      }
    }

或者(我认为它会为您创建一个虚拟文件夹--同样,没有测试过)

bootJar {
      from("src/main/resources/dummy") {
          into("dummy/")
      }
    }

相关问题