Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle 格拉德尔有没有类似于有效pom(Maven)的东西?_Gradle - Fatal编程技术网

Gradle 格拉德尔有没有类似于有效pom(Maven)的东西?

Gradle 格拉德尔有没有类似于有效pom(Maven)的东西?,gradle,Gradle,几个月前我就开始使用Gradle了,有时我会在我的build.Gradle文件中遇到问题。例如,如果我在文件中添加类似的内容: apply plugin: 'kotlin' 我不知道这会扩大到什么程度。在我的例子中,我发现它还引入了java插件,java插件本身设置了一些配置。我如何知道这些语句将扩展到什么?Gradle是否有类似于有效的构建。Gradle 澄清:我真正想知道的是每个apply plugin X语句在幕后做了什么,而不需要查找文档等。Gradle插件,虽然它们可以以Gradle

几个月前我就开始使用Gradle了,有时我会在我的
build.Gradle
文件中遇到问题。例如,如果我在文件中添加类似的内容:

apply plugin: 'kotlin'
我不知道这会扩大到什么程度。在我的例子中,我发现它还引入了
java
插件,
java
插件本身设置了一些配置。我如何知道这些语句将扩展到什么?Gradle是否有类似于有效的
构建。Gradle


澄清:我真正想知道的是每个
apply plugin X
语句在幕后做了什么,而不需要查找文档等。

Gradle插件,虽然它们可以以Gradle脚本的形式存在,其中很多都是二进制插件:java代码恰好在构建时由jvm执行。这意味着“build.gradle”是有效的build.gradle,除非您真的想查看字节码/插件源代码

了解插件为您的项目带来了什么的最好方法是,或者如果没有足够的文档,请尝试联系Kotlin开发人员/a Kotlin特定支持论坛

编辑以回应澄清:不,不看文档就无法知道插件在做什么;插件通常是与构建一起运行的Groovy/Java程序。这就像让你的计算机猜测“xyz.exe”在没有谷歌搜索或运行的情况下做什么一样


选择gradle插件对于您的构建过程来说是一个非常大且经过深思熟虑的选择,需要谨慎地进行,并考虑它们带来的功能以及每个插件使用的设置,以确保您的构建能够达到您需要的结果。即使我们有科幻电脑,可以用简单的英语神奇地说出一个随机二进制的功能,你也可以通过做腿部工作、阅读文档、弄清楚你的插件的功能以及如何有效地使用插件来获得更好的服务。

你可能会列出带有自定义任务的插件

task pluginReport {
    doLast {
        allprojects.each { Project p ->
            PluginContainer plugins = p.plugins
            println "Project: ${p.name} has ${plugins.size()} plugins
            plugins.each { Plugin plugin ->
                println "   - ${plugin.class.name}"
            }
        }
    }
}

从Gradle2.10开始,您可以尝试使用
GradleBuildEnvironment
。另请参见,或。

尝试
渐变依赖项
。输出类似于Maven的
mvn依赖关系:树


请参阅此处的文档:

定义“扩展到”的确切含义。到现在为止,我已经单独使用Gradle很多年了,并且自己开发了很多Gradle插件。Gradle插件需要了解的重要一点是,它们本质上只是由apply语句执行的预制groovy代码。Gradle插件几乎可以做任何你在groovy中可以做的事情,这正是它们如此强大的原因。他们以任何方式配置项目,这样您就不必在build.gradle中手动执行。例如,您可以将gradle插件的源代码直接放在build.gradle中,它的工作方式也会相同。与maven gradle不同,maven gradle不太注重列出和配置设置和插件,但就像Grunt或Gulp(我不知道您是否熟悉这些Javascript构建系统)一样,您编写的代码在编译时执行以构建项目。我对Kotlin不太熟悉,但Kotlin代码是否可以编译成Java jar文件?在这种情况下,应用Java插件,以便Kotlin插件可以使用它生成Java字节码。它将在Java编译任务之前添加额外的任务,以Java插件能够理解的方式准备Kotlin代码。Groovy代码经过预处理并转化为有效的Java代码,Java插件可以编译这些代码。我猜在本例中“扩展到”只是指插件的可传递依赖项。Kotlin只是一个例子。我也不知道java插件做什么。这让我进入了我的第二段:如果你需要详细信息,java插件文档将继续存在,总结一下,它有效地添加了一系列java生命周期任务(在引擎盖下,这些任务运行所需的一切,脚本或二进制)。