我在一家大公司工作,有严格的政策,禁止未经过滤地使用外部图书馆。我们必须从祝福的企业存储库中提取所有内容,而不是从裸露的互联网中提取所有内容,包括 gradle.org。
使用gradle最初的apply-plugin语法,结合buildscript块,我可以将插件添加到我们的repo中,并在构建中使用它们。换句话说:
buildscript {
repositories {
maven { url "https://privaterepo.myemployer.com" }
}
dependencies {
// various dependencies
classpath "org.something:some-plugin:1.0"
...
}
apply plugin: "someplugin"
相反,我希望能够使用新的插件DSL,即
plugins {
id 'org.something.some-plugin' version '1.0'
}
(我意识到需要在某个地方定义私有回购url)
新的插件语法总是gradle.org,似乎没有任何方法来提供备用下载网址。有人知道方法吗?
我仔细看了留档和网上都找不到答案。如果答案完全显而易见,我很抱歉。
非常感谢!
要全局应用该设置,可以将其添加到USER_HOME/.gradle/init。级配如下:
allprojects {
repositories {
mavenLocal()
maven { url "https://artifactory.mycompany.com/artifactory/maven-repo" }
}
}
settingsEvaluated { settings ->
settings.pluginManagement {
repositories {
mavenLocal()
maven { url "https://artifactory.mycompany.com/artifactory/maven-repo" }
}
}
}
自Gradle的最新版本以来,插件语法发生了一些变化,现在Gradle 4.x的正确语法是:
pluginManagement {
repositories {
maven {
url 'maven-repo'
}
gradlePluginPortal()
ivy {
url 'ivy-repo'
}
}
}
因此,例如,此设置.gradle 将使用您的内部 Nexus 镜像:
pluginManagement {
repositories {
maven {
url 'https://internal.repo.corporate/repository/gradle-proxy/'
}
}
}
rootProject.name = 'My Project Name'
更多信息可以在Gradle插件留档中找到。
Gradle 3.5有一个新的(孵化)功能,允许使用pluginManagement
DSL更好地控制插件依赖项解决方案:
插件解析规则允许您修改在< code>plugins {}块中提出的插件请求,例如更改请求的版本或显式指定实现工件坐标。
要添加解析规则,请使用pluginManagement{}
块中的resolutionStrategy{}
:
例27.6。插件解析策略。
settings.gradle
pluginManagement {
resolutionStrategy {
eachPlugin {
if (requested.id.namespace == 'org.gradle.sample') {
useModule('org.gradle.sample:sample-plugins:1.0.0')
}
}
}
repositories {
maven {
url 'maven-repo'
}
gradlePluginPortal()
ivy {
url 'ivy-repo'
}
}
}
这告诉Gradle使用指定的插件实现工件,而不是使用其从插件ID到Maven/Ivy坐标的内置默认映射。
< code>pluginManagement {}块只能出现在settings.gradle文件中,并且必须是该文件中的第一个块。除了实际实现插件的构件之外,定制Maven和Ivy插件库必须包含插件标记构件。
插件管理
中的存储库
块的工作方式与以前版本中的插件存储库
块相同。
在 Gradle 3.5 之前,您必须在设置.gradle 中定义插件存储库
块,如 sytolk 的答案中所述:
pluginRepositories{}块只能出现在设置中。gradle文件,并且必须是文件中的第一个块。
pluginRepositories {
maven {
url 'maven-repo'
}
gradlePluginPortal()
ivy {
url 'ivy-repo'
}
}
主要内容:插件类型,应用插件,编写自定义插件,从构建获取输入,标准Gradle插件插件只是一组任务,几乎所有的任务,如编译任务,设置域对象,设置源文件等都由插件处理。 插件类型 Gradle中有两种类型的插件:脚本插件和二进制插件。 脚本插件是一个额外的构建脚本,它提供了一种声明性方法来操作构建,通常在构建中使用。 二进制插件是实现插件接口并采用编程方法来操作构建的类。二进制插件可以驻留在插件JAR中的一个构建脚本和项目层次结构或外部。 应用插件 Project.apply()
怎么自建uniapp 组件库? 使用 vite 和vue3
本文向大家介绍怎么在vue中使用插件?相关面试题,主要包含被问及怎么在vue中使用插件?时的应答技巧和注意事项,需要的朋友参考一下 建议有时候不要直接使用第三方插件, 而是经过自己的封装. 要不然改起来, 就要跳楼
我正在尝试运行我的项目,它运行没有任何问题,但在我更新Android Studio后…我有一个错误,我不知道我使用了哪个android studio版本之前,更新降级到它。 Android Gradle插件只支持Kotlin Gradle插件1.3.0及更高版本。以下依赖项不满足所需版本:项目':assets_audio_player'->org.jetbrains.kotlin:kotlin-g
我是新的Gradle,但需要建立一个开源项目,使用它,从我的机器上的公司网络。该项目最近转移到静态编程语言DSL,因此需要一些插件。 我需要使用我们的corporate Nexus服务器获取插件依赖项,我希望全局设置,因为我不想修改在所有项目中(我已经尝试过了,而且效果很好) 如果我想在全球范围内这样做,我从https://docs.gradle.org/current/userguide/plu
我不明白gradle插件块 和其他一个: 在第一个块中,我们有一些插件名称。在第二个一个包和版本。我不明白应该在哪里使用第一个块,什么时候使用第二个块。