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

Gradle Kotlin DSL:如何使用类型安全api配置子项目

公孙智
2023-03-14

我一直在尝试使用Kotlin DSL以一种类型安全的方式转换我的项目的Gradle文件,但到目前为止还是失败了。我的所有项目都是Java中的多项目构建。其思想是对子模块的公共配置进行因子分解/重复数据删除(不管是在根模块的“subprojects”块中,还是在单独的“kts”文件中,我不关心)。官方文档指出,不可能对“子项目”和应用程序(从='shared.gradle.kts')进行类型安全(https://docs.gradle.org/current/userguide/kotlindsl.html)。

它的工作方式如下,但它是相当的阳极化:


plugins {
    idea
    eclipse
}

subprojects {
    apply(plugin = "java")

    dependencies {
       "implementation"("com.google.guava:guava:28.1-jre")
       //...
    }
}

是否有一种方法以类型安全的方式对所有子模块的模块配置进行分解?如果没有...格拉德尔打算允许吗?

共有1个答案

秦浩漫
2023-03-14

Gradle6.1.1类型安全模型访问器读取:

只有主项目构建脚本和预编译的项目脚本插件具有类型安全的模型访问器。初始化脚本,设置脚本,脚本插件不。这些限制将在将来的分级版本中删除。

不管“未来版本”是什么意思...而交叉配置项目的内容是:

 类似资料:
  • 我有一个Spark应用程序,我正试图将其打包为fat jar并使用部署到本地集群。我正在使用Typesafe config为各种部署环境-、和创建配置文件,并尝试提交我的JAR。 我正在运行的命令如下: 我通过一个接一个地添加选项,以增量方式构建了该命令。使用,日志提示文件正在上载到Spark,但当我添加时,提交失败,找不到文件。 代码:

  • 问题内容: 我有课 和班级 关键是该方法不安全,因为我可以提供的项目与当前报告无关,但与其他报告相关,编译器不会抱怨。 是否可以用类型安全的方式编写该方法,即我们可以仅将T作为当前报表的类型作为参数传递。 问题答案: 我认为您正在寻找以下内容。 它的工作方式是: 您想用从 您要确保所有列表都属于同一类型 为了将参数绑定到从扩展的对象,您需要对自身进行参数化: 您添加需要从报表扩展的绑定 但是您要

  • 我启用了Swagger open API 3.0,如下所示: 添加了以下依赖项 之后添加了下面的bean进行定制。 一切正常。我可以访问swagger-用户界面和api文档。 但是我有几个使用keycloak OAuth 2.0保护的api。当我试图访问这些安全的api时,我收到了未经授权的错误(这是意料之中的)。我也想从swagger open api 3.0中测试安全的api。 有人能帮我在s

  • 我试图在使用TypeSafe配置时排除Liquibase创建的两个表。 当我只提供一个排除项时,比如,它就可以工作了。 应使用逗号分隔多个排除项(http://www.jooq.org/doc/2.6/manual/code-generation/codegen-configuration/),但它生成了两个表。 这样做也是不允许的。 在库内部,它简化了调用此函数(注意:getExcludes是一

  • 我正在尝试将openapi/swagger文件导入api网关,但无法按预期获得安全设置。我希望所有路径都需要一个api密钥。 导入后在控制台中设置它所需的api密钥是可行的,但这种解决方案是不可取的,同样可行的是在每个路径中单独设置安全字段,但我正在寻找全局解决方案。 当我尝试导入文件时,我会收到以下警告: 看起来,我要么需要一个lambda作为api密钥的自定义授权器(我不熟悉授权器,但如果我在

  • 问题内容: 因此,我正在执行的第一个项目中使用Google Maps API。是的,我是新手,如果这是基础知识或显而易见的事情,我感到抱歉,但是我找不到明确的答案或方向。以下是我从Google找到的有关安全使用API​​密钥的文档。 安全使用API​​密钥的最佳做法 在应用程序中使用API​​密钥时,请注意确保其安全。公开暴露您的凭据可能会导致您的帐户遭到盗用,这可能会导致您的帐户发生意外费用。为