我正在编写一个自定义Gradle插件来为所有项目添加公共资源。例如,所有微服务都使用SpringBoot web、sleuth和其他常见的依赖项。
因此,决定将创建一个独立的项目,并将插件导出为jar,然后将插件应用于其他项目。
plugins {
id 'java-gradle-plugin'
id 'test-common'
}
gradlePlugin {
plugins {
simplePlugin {
id = 'test.resource-plugin'
implementationClass = 'com.test.CommonResource'
}
}
}
public class CommonResourcesPlugin implements Plugin<Project> {
@Override
public void apply(Project project) {
var dependencySet= project.getConfigurations().getByName("compile").getDependencies();
log.info("Applying depdencies");
project.getDependencies().add("implementation", "org.springframework.boot:spring-boot-starter-web");
project.getDependencies().add("implementation", "org.springframework.boot:spring-boot-starter-actuator");
}
}
plugins {
id "test.resource-plugin" version '1.0-SNAPSHOT'
}
dependencies {
implementation "com.test:test-starter-plugin:1.0-SNAPSHOT"
}
* Exception is:
org.gradle.api.plugins.UnknownPluginException: Plugin [id: 'test.resource-plugin', version: '1.0-SNAPSHOT'] was not found in any of the following sources:
- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (could not resolve plugin artifact 'test-starter-plugin:test-starter-plugin.gradle.plugin:1.0-SNAPSHOT')
我找到了这个问题的根本原因,它已经解决了。我只需要在希望使用它的项目的settings.gradle文件中添加以下属性。
pluginManagement {
repositories {
mavenLocal()
gradlePluginPortal()
}
}
问题内容: 我已经构建了Gradle插件并将其发布到本地Maven存储库。我可以在〜/ .m2 /存储库中看到它。但是,当我运行Gradle项目以使用此插件时,它甚至不会在本地存储库中查找……至少,并非基于输出。 当从命令行运行时,它将报告此信息: 失败:生成失败,发生异常。 其中:构建文件“ D:\ Work \ MuseProject \ update4j-gradle-plugin \ ex
我最终不得不在文件。定义通常非常繁琐: 注意上面gradle提供了一种定义常用maven存储库的好方法(即)。我想在插件或父gradle脚本中找到一种方法,在函数中或静态地定义存储库,然后在块中调用它:。 我缺乏groovy方面的知识,因此我不太了解解析groovy源代码所需的知识,我正在寻找一种很好的方法来实现这一点。我该怎么做? 我知道在父级gradle文件中,我可以使用或。我不想将这些mav
我有通用的基本存储库定义如下: 我的ICustomRepostory存储库接口定义如下: 现在当我使用基本存储库时: 当我在我的服务类中自动连线 OrdeRepository 时,它给了我编译错误: 引起:org.springframework.beans.factory.BeanCreationExc的:错误创建bean的名称'OrderRepostion'定义abc.example.在@Ena
这是我的构建。格雷德尔 和链接<代码>http://example.com/repository/maven-public/由Nexus Repository Manager构建,可访问。 当我在eclipse中单击刷新Gradle项目时。我可以看到链接指向 <代码>https://repo.maven.apache.org/..../example-commlib-1.0.pom 我认为正确的网
问题内容: 我的Maven配置有一个小问题。此处的所有其他问题和答案都不能解决我的问题,因此,我开始了一个新问题。 我的问题是,我的Maven没有使用本地存储库。它总是从远程存储库中获取工件。 当下载工件或构建项目时,它将安装在本地存储库中,因此路径正确。 问题是:当我构建一个SNAPSHOT项目时,它仅安装在本地存储库中(应该是这样,不想每次都将其发布在我的关系上)。当我在pom.xml中构建另
我的Maven配置有一个小问题。这里所有其他的问题和答案都没有解决我的问题,所以我要开始一个新的问题。 我的问题是,我的Maven没有使用本地存储库。它总是从远程存储库中获取工件。 当下载工件或构建项目时,它被安装在本地存储库中,因此路径是正确的。 问题是:当我构建一个快照项目时,它只安装在本地存储库中(应该是这样的,不要每次都在我的nexus上发布)。当我构建另一个项目时,在pom.xml中有前