【发布时间】:2021-09-10 06:03:01
【问题描述】:
我看到很多带有此设置的 build.gradle 配置:
compile group: 'org.jenkins-ci.main', name: 'jenkins-core', version: '+', ext: 'jar'
ext: 'jar' 是做什么的?
ext 是 DefaultExtraPropertiesExtension,但我找不到“jar”是什么的文档。
如果我在这个例子中去掉ext: jar,我会得到一个看起来像传递依赖的错误:
Could not find org.connectbot.jbcrypt:jbcrypt:1.0.0.
“jar”是下载预编译的 uber jar 还是其他东西而不是正确的 Maven 包?为什么似乎有零文档 - 也许我没有找对地方?
编辑
我找到了解释here:
注意 2:ext: 'jar' 对于确保 jar 文件非常重要, 而不是 hpi/jpi 文件,正在被下载和理解 智能。如果没有指定 ext 选项,IntellJ 将找不到 JAR 嵌套在 hpi/jpi 文件中的文件,这是默认的二进制文件 Jenkins 插件。
但我仍然对正在发生的事情感到困惑。是否将参数“jar”传递给依赖项并且这些 Jenkins 依赖项是否知道这个“jar”参数?所以 jar 不是标准的 Gradle 部门的东西,它是特定于这些 Jenkins 部门的?
【问题讨论】:
-
我不确定你在问什么,但是:JAR 是一个压缩的 java 文件。见docs.oracle.com/javase/tutorial/deployment/jar/basicsindex.html
-
ext是“扩展名”的缩写——表示文件名末尾的后缀(或“文件扩展名”)——例如文件名notes.txt中的txt。而jar是您的 Gradle 配置中需要的文件扩展名,以便可以找到嵌入在 Jenkins 插件中的 JAR 文件。 JAR 文件的文件扩展名为jar- 例如,您问题中的文件名可能是jbcrypt.1.0.0.jar。如果我在解释你已经知道的事情,请提前道歉...... -
...Jenkins 插件有点不寻常,因为它们本身就是 zip 文件(可能包含 JAR 文件!) - 但它们使用
hpi或jpi作为文件扩展名:@ 987654335@。这个额外的指令允许定位*.hpi文件中的*.jar文件。 -
所以
ext: jar正在搜索并下载我指定的依赖项/包中的所有 *.jar 文件?所以我可以指定任何扩展名,它只会在依赖项中覆盖那些特定的文件?认为我仍然对其实际在做什么感到困惑
标签: java jenkins gradle groovy