当前位置: 首页 > 知识库问答 >
问题:

Micronaut属性注入不适用于分级多项目构建

墨承泽
2023-03-14

我正在尝试使用Gradle multi-project build使用共享包来设置Micronaut(1.1.0.build-snapshot)项目,这样我就可以将公共逻辑放在一个地方。

我在为库创建属性文件时遇到了这个问题。我在application.yml中放置了一些特定于库的属性,但看起来它们没有被推进到应用程序层:

@Singleton
public class CommonSingleton {

  public CommonSingleton(
    @Value("${lib.testProperty}") String value
  ) {
    System.out.println(value);
  }
}
lib:
  testProperty: test
@Controller("/app")
public class AppController {

  @Inject
  private CommonSingleton commonSingleton;

  @Get(produces = MediaType.TEXT_PLAIN)
  public String index() {
    return "Hello World";
  }
}
Unexpected error occurred: Failed to inject value for parameter [value] of class: lib.CommonSingleton

Message: Error resolving property value [${lib.testProperty}]. Property doesn't exist
Path Taken: AppController.commonSingleton --> new CommonSingleton([String value])
io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [value] of class: lib.CommonSingleton

完整的示例可在GitHub上获得。

共有1个答案

葛学民
2023-03-14

目前,它被设计成只读取单个application.yml。如果要从app中删除该文件,则将从lib中读取该文件。你可以提交一个问题让我们知道这是你想要的。https://github.com/micronaut-projects/micronaut-core/issues

 类似资料:
  • 在使用GradleV5.5.1的多项目构建中,我尝试将插件仅应用于某些子项目(如使用插件中所述)。您可以在这里看到,我试图将它应用于以结尾的子项目: 但是,它将其应用于我的项目(输出日志): 我做错了什么??

  • 我有以下项目结构 上述项目结构的思想是:多个项目包含多个子项目,每个项目都可以依赖于其他项目。此外,项目中的子项目可能与同一项目中的其他子项目有依赖关系。项目将在根中的settings.gradle中指定。同时,每个项目中的gradle会说出该特定项目的子项目是什么。 我的设置.根部的Gradle看起来像 和Project1设置。Gradle将看起来像 其他依赖关系顺序是在相应的build.gra

  • 我尝试用构建我的Java项目,得到了以下内容: 的第25行:

  • 我有一个多项目分级建筑在当地工作。有一个父级文件build.gradle设置。gradle文件将项目分配给它们各自的分级生成文件: 错误仍然相同,build.gradle文件(父文件)无法识别依赖项任务查看调试语句,找到并识别子生成分级文件:使用生成文件'/var/../LoadRemote/RemoteLoad_build.gradle'计算项目':LoadRemote'。对加载构建文件显示相同

  • 分级任务 null 在https://help.gradle.org获得更多帮助