问题描述
我完全来自Maven背景,到目前为止我还没有使用Gradle构建。
已完成:
-
我能够使用
成功构建此项目https://github.com/opendistro-for-elasticsearch/anomaly-detection./gradlew build
-
根据项目中的文档,提到
./gradlew :run
命令将启动安装了两个插件的单节点弹性搜索集群。我尝试了一下,就能像下面那样安装两个插件http://127.0.0.1:9200/_cat/plugins?v&s=component&h=name,description
问题 :
现在,我正在尝试理解此开源代码,
-
build.gradle(https://github.com/opendistro-for-elasticsearch/anomaly-detection)中这四个标记的用途是什么:buildscript,插件,存储库,ext
-
当我看着
build.gradle
时,似乎需要以下软件包进行构建,allprojects { 组='com.amazon.opendistroforelasticsearch'
plugins.withId('java') { sourceCompatibility = targetCompatibility = "1.8" }
}
但是此代码(https://github.com/opendistro-for-elasticsearch/anomaly-detection)的主要方法/触发点在哪里?有人可以看一下这个github项目,让我知道代码的起点,以便我进行调试并获取剩余的上下文!!
感谢您的帮助!
谢谢,
哈里
解决方法
关于Gradle问题,我想可以很容易地回答它们:
-
这四个标签的用途是什么
-
buildscript
:此块允许进行设置,并在加载其余的构建脚本之前之前应用。例如,这对于将插件添加到类路径很有用。但是该用例已过时,建议使用plugins
块。 (Documentation) -
plugins
:使用此块,您可以将插件添加到Gradle项目。id 'java'
对于Java项目是典型的。这些插件要么随Gradle一起提供,要么将从远程存储库中检索。如果需要,可以在setting.gradle文件中进行配置。 (Documentation) -
repositories
:为了从远程存储库解析工件(并将其推送到),您必须定义这些存储库。流行的选择是mavenCentral()
和jcenter()
,但您也可以定义自己的存储库。对于防火墙后的企业使用,我们做了很多事情。 (Documentation) -
ext
:这是Gradle项目的扩展,允许您定义其他属性以供整个构建脚本使用。定义后,您无需使用ext.
前缀即可访问它们。 (Documenation)
-
-
allprojects
遍历根项目和所有子项目,并将闭包应用于每个项目。在这种情况下,将组设置为给定的字符串,并存储一个命令,该命令在将Java插件应用于该项目并将Java输入和输出设置为1.8版时执行。
关于主要方法:我想您必须在项目中搜索主要方法。或者,它可能是启动您的应用程序的框架。在那种情况下,框架必须有某种挂钩(重写类/已实现的接口,注释?)才能启动您的实际应用程序。您必须在框架文档中进行检查。快速入门指南可能是开始寻找的好地方。