等级 6.1.1
我一直在尝试使用Kotlin DSL转换我项目的gradle文件,但迄今为止失败了。我所有的项目都是Java的多项目构建。我在这里遵循了插件子项目示例
看起来是这样的:
plugins {
idea
eclipse
}
subprojects {
apply(plugin = "java")
dependencies {
implementation("com.google.guava:guava:28.1-jre")
//...
}
}
子项目似乎不理解java插件,所有“实现”行都有一个未解析的引用。
看这里留档https://docs.gradle.org/current/userguide/kotlin_dsl.html.
类型安全访问器不适用于由以下因素贡献的模型元素:
implementation()
是这样的类型安全访问器。非类型安全方式如下所示:
apply(plugin = "java-library")
dependencies {
"api"("javax.measure:unit-api:1.0")
"implementation"("tec.units:unit-ri:1.0.3")
}
在groovy DSL中,所有方法都是动态解析的(不是类型安全的),所以在这里它并不重要。
这有助于理解build.gradle。kts文件不是纯kotlin文件。如果顶部有大量进口商品,它们看起来会更难看。因此,gradle运行时将“构建脚本”和“插件”块视为特殊块。“插件”被转换为导入语句。这不适用于apply()方法,后者在编译文件时运行。这也是为什么插件块不能在其他地方使用的原因,它是一个特殊的构造,只是假装是一个普通的代码块。这里再详细一点https://docs.gradle.org/current/dsl/org.gradle.plugin.use.PluginDependenciesSpec.html
仅仅从模块设计的角度来看,我通常建议多模块构建中的根模块与子模块的作用无关,即使有很多人像您的示例一样使用子项目
块。让每个子模块的构建文件都像一个独立的gradle项目一样完整,因此读者不必阅读2个文件即可获得完整的画面。
有更好的显式方法可以在子项目之间共享配置。
根文件中的< code>subprojects块最好用于添加额外的任务,如果项目的根IMO需要这些任务的话。不要注入插件或配置。
我有一个多项目分级配置,我想添加一个插件到所有子项目和根项目以及。阅读这里的文档似乎很容易: 如果您有一个多项目构建,您可能希望将插件应用于构建中的一些或所有子项目,而不是根项目或主项目。plugins{}块的默认行为是立即解析并应用插件。但是,您可以使用apply false语法告诉Gradle不要将插件应用到当前项目,然后在subprojects块中使用apply plugin:~plugin
我看了看样品,然后跟着它走 (渐变版本为6.8.3) https://docs.gradle.org/6.8.3/samples/sample_building_java_applications_multi_project.html 我只是附加了插件io。Spring演示中的依赖关系管理。java常见约定。gradle文件。 然后运行gradle生成,出现以下错误。 错误:插件请求无效[id:“
问题内容: 我正在一个较大的项目中,其中包含许多子项目,这些子项目都是用gradle构建的。通常所有项目都是java项目,因此在主build.gradle脚本中 为所有项目指定。 但是,我需要为项目的某个子树删除插件,或者从插件中明确排除项目。 这里是项目布局的粗略概述 Android / *不需要Java插件。实现此目标的最佳解决方案是什么?注意:我无法更改项目结构。 问题答案: 这应该可以解决
我已经从https://eclipse.adobe.com/aem/dev-tools安装了AEM Eclipse插件(我下载了它作为存档,并在我的Eclipse作为本地存档使用)。 然后,我遇到了AEM向导在创建新项目时不显示的问题。找到了从中下载原型目录xml文件的变通方法https://repo.adobe.com/nexus/content/groups/public/archetype-
可以通过nbPython plugin获得对NetBeans的Python和Jython支持。 从以下URL下载插件 - http://plugins.netbeans.org/plugin/56795 。 将下载的存档解压缩到某个文件夹中。 例如 - d:\nbplugin 。 要安装NetBeans插件,请按照下面给出的步骤操作。 Step 1 - 启动Netbeans IDE ,然后转到To
我有以下多项目分级建设: 3个子项目分级文件中的每一个目前都非常简单: 以下是我想要达到的目标: 当我从父目录运行时,我希望所有三个子项目都使用0.1.5版本生成;因此,、和。但是,当前我的构建已经执行此操作... 如果客户端和共享JAR成功构建,我还希望将它们发布到我的私有Artifactory repo中。(我不希望发布服务器JAR)。 我的问题是:如何将这个片段添加到我的项目中,这样从父目录