【问题标题】:Bazel to read spring boot application.properties configurationsBazel 读取 spring boot application.properties 配置
【发布时间】:2019-12-02 18:13:29
【问题描述】:

我有一个非常简单的使用 Maven 的 Spring Boot 应用程序,我正在尝试将它迁移到使用 Bazel。 我正在关注“Migrating from Maven to Bazel”教程,现在我已经使用 Bazel 运行了 Spring Boot 应用程序。

问题是我的 application.properties(在“src/main/resources”中创建)文件没有被 Spring 加载,我在其中设置了例如我的应用程序运行的端口。

我的 BUILD 文件如下:

 java_library(
    name = "lib",
    srcs = glob(["*.java"]),
    #visibility = ["//src/test:__subpackages__"],
    deps = [
        "@maven//:org_springframework_boot_spring_boot",
        "@maven//:org_springframework_boot_spring_boot_autoconfigure",
        "@maven//:org_springframework_boot_spring_boot_starter_web",
    ],
)
java_binary(
    name = "app",
    main_class = "com.myapp.MyApplication",
    runtime_deps = [
        ":lib",
    ],
)

如何使用 Bazel 加载我的 application.properties 文件?谢谢。

【问题讨论】:

  • 您的应用程序运行情况如何? src/main/resources 中的文件应该由构建系统复制到一个位置,该位置最终位于运行应用程序的 JVM 的类路径中。
  • 尝试使用java_library.resources 包含application.properties
  • @AndyWilkinson 我以这种方式运行应用程序:“bazel run //src/main/java/com/myapp:app”。
  • 我能够使用“java_library.resources”使其工作。我正在努力用 Bazel 做简单的事情。谢谢你们。

标签: java spring spring-boot bazel application.properties


【解决方案1】:

要在您的 JAR 中包含像 applications.properties 这样的数据文件,请在 java_libraryjava_binary 规则上使用 resources 属性。

https://docs.bazel.build/versions/master/be/java.html#java_library.resources

这是an example 的用法。

【讨论】: