当前位置: 首页 > 知识库问答 >
问题:

如何改变生成工件的依赖关系?

权胜泫
2023-03-14

等级2.3;影子插件1.2.1。

在我的build.gradle中,我使用shadow插件来重新打包依赖项,如下所示:

shadowJar {
    relocate("com.google.common", "r.com.google.common");
}

我还将shadow jar添加到要发布的工件列表中:

artifacts {
    archives jar;
    archives sourcesJar;
    archives javadocJar;
    archives shadowJar;
}

共有1个答案

孟成化
2023-03-14

在工作中,我们遇到了同样的问题,我们只是把这个问题放在一个项目的build.gradle中:

def installer = install.repositories.mavenInstaller
def deployer = uploadArchives.repositories.mavenDeployer

[installer, deployer]*.pom*.whenConfigured { pom ->
    pom.dependencies.retainAll {
        it.groupId == 'our.group.id' && it.artifactId == 'some-api'
    }
}

这将删除pom.xml中的所有依赖项,但对一个API项目的依赖项除外。

(这是官方Gradle文档中的一个示例的一个相当完整的副本。)

 类似资料:
  • 我有一个“移动”模块,它依赖于一个“核心”模块,我不断收到相同的不一致错误: 移动/构建。格拉德尔: 核心/build.gradle: 每当我将我的变体设置为mobiledebug-core-debug时,我仍然会在我的核心中获得相同的输出。我的申请。java文件:'https://core.release':

  • Debian软件包管理系统会自动管理软件的依赖关系,使我们在安装软件时方便了很多,不用理会复杂的软件依赖关系,这也是Debian发行版的一大特色。但了解软件包的依赖关系对你熟悉Linux和进行系统开发是很有好处的,所以Debian也提供了工具帮我们生成软件包的依赖关系图。操作步骤如下,首先,安装相关的工具: debian:~# apt-get install apt-rdepends sprin

  • 我有什么似乎是一个简单的问题,关于如何设置Jenkins和maven 3。 为了简单起见,假设我们有四个项目: 没有依赖关系的模型 Commons依赖于模型 服务器依赖于Common和模型 前端依赖于模型 我想要实现的是,一个成功的基于模型的构建触发所有项目的新构建,这些项目在其pom中依赖于模型(这里是公共的,服务器和前端) 如果Common失败,则无需构建服务器。 在上述情况下,我似乎可以通过

  • 构建一个Java /Groovy项目,各种任务,如编译Java、编译Groovy、测试等,需要各种jar工件,如果您正确定义了该任务的每个区域所需的内容,Gradle会提供这些工件。 我将这些应用于构建脚本(build.gradle ),一切正常。 我正在处理的另一个项目不仅需要jar rtifacts,还需要一个.xml文件作为进行JIBX / XSLT转换/处理的工件。 我的简单问题: - G

  • 我正在使用“maven”插件将Gradle构建创建的工件上传到Maven中央存储库。我正在使用类似于以下任务的任务: 然而,此任务创建的POM文件不能正确报告在我的Gradle构建文件中被排除的依赖项。例如: 如何在生成的POM文件中正确管理排除的依赖项?

  • 问题内容: Go 1.8支持Go插件。 我创建了两个插件,如下所示。 据我了解,该插件仅公开包中的函数和变量。即对于非变量/函数将失败。 但是我想测试一个插件是否可以在内部从另一个插件调用方法,类似于C ++库如何调用另一个库。 所以我测试如下: plugin1 github.com/vimal/testplugin plugin2 github.com/vimal/testplugin1 这里的