如何在Gradle中使用pom类型依赖

2023-12-25

我需要从我的 pom.java 库中生成传递依赖。这是我如何做的一个例子:

plugins {
  `java-library`
  `maven-publish`
}
repositories {
  // some maven repo
}
dependencies {
  // This is POM type dependency:
  api("org.apache.sshd:apache-sshd:1.6.0") {
    exclude(group = "org.slf4j")
  }
}
publications {
  create<MavenPublication>("maven") {
    from(components["java"])
  }
}

此配置的问题在于,在已发布的pom.xml我的库的依赖项是类型jar(默认情况下)并声明如下:

<dependency>
  <groupId>org.apache.sshd</groupId>
  <artifactId>apache-sshd</artifactId>
  <version>1.6.0</version>
  <!-- Should declare pom type -->
  <scope>compile</scope>
  <exclusions>
    <exclusion>
      <artifactId>*</artifactId>
      <groupId>org.slf4j<groupId>
    </exclusion>
  </exclusions>
</dependency>

因此,当我尝试使用另一个项目中发布的库时,它会失败,因为没有这样的工件apache-sshd因为它的类型应该是pom。那么如何使用Gradle正确发布想要的依赖呢?

使用 Kotlin DSL 在 Gradle 5.3.1 上运行。


尝试使用以下构造在 Gradle 中声明依赖项

api("org.apache.sshd:apache-sshd:1.6.0@pom") {
   exclude(group = "org.slf4j")
   isTransitive = true
}

看起来 Gradle 默认将所有依赖项作为 jar 类型消耗。 Maven 插件使用提取的类型在 pom 文件中生成依赖项部分。对于 pom 依赖项,必须将正确的值放入生成文件的类型字段中。但是,如果您为依赖项添加 pom 扩展,Gradle 将不会解析此工件中声明的传递依赖项。设置传递标志的值可以解决此问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Gradle中使用pom类型依赖 的相关文章

  • Maven 库的可选 Gradle 依赖项

    我正在开发一个 Android 库 并且仅当使用我的库的项目也包含该依赖项时才想使用该依赖项 类似于什么Picasso https github com square picasso与OkHttp https github com squa
  • 如何在 Android Studio 中构建项目测试目录?

    目前还没有这方面的约定 但是现在我如何构建 Android Studio 的测试目录呢 Android 测试基础 http developer android com tools testing testing android html页面
  • 如何不让 Gradle 立即退出 Scala 的 REPL?

    这些简单的线条在build gradle暴露一个repl理想情况下会启动 scala REPL 的任务 点燃并保持活力就是这样 repl 加载后 它立即收到 quit 命令并退出 的重要部分build gradle dependencies
  • Maven 配置文件相当于 Gradle

    我试图在我的 spring boot 项目构建中实现一个简单的场景 包括 排除依赖项以及根据环境打包 war 或 jar 例如 对于环境dev包括开发工具和包 jar 用于prod包战等 我知道它不再是基于 XML 的配置 我基本上可以在
  • 无法排除 Gradle 复制任务的目录

    我有一个 gradle 脚本 我想将 3 个目录复制到另一个文件夹中 但我还必须排除目录 这是我开始的树结构 src gt java gt tms gt common src gt java gt tms gt dla src gt jav
  • 在解决依赖关系之前运行 gradle 任务

    我想运行一个 gradle 任务 在 gradle 尝试解决依赖关系之前获取其他源并设置它们 在 build gradle 中有一个任务 用于获取子项目的源代码 该任务需要在 Gradle 尝试解决依赖关系之前运行 因为子项目是依赖关系的一
  • Spring Tool Suite/Gradle/MapStruct - 找不到映射器的实现

    我在 StackOverflow 上搜索了我的问题的答案 虽然我找到了许多提供的解决方案 但没有一个适合我的情况 我必须在工作项目中使用 MapStruct 所以我正在尝试通过教程点 https www tutorialspoint com
  • 如何在 Gradle 中使用 if else 条件

    有人可以告诉我如何在 gradle 脚本中编写 if else 条件吗 我的意思是我有两种不同类型的 zip 文件 一种是 LiceseGenerator 4 0 0 58 另一种是 CLI 4 0 0 60 我的部署脚本工作正常 但我使用
  • 在一个react-native项目中使用谷歌地图和FCM

    I want to use google map and FCM in one react native project first I added FCM in project everything was okay but when I
  • 在Gradle中,有没有更好的方法来获取环境变量?

    在几个任务中 我引用了我的主文件夹中的 jar 有没有比获取环境变量更好的方法 ENV System getenv HOME ENV HOME task copyToServer dependsOn jar type Copy from b
  • JsInterop“com 未定义”

    尝试使用 JsInterop 与每个 Javascript 的 LibGDX 项目进行通信 我正在关注 将 Java 类型导出到 JavaScript 示例here http www gwtproject org doc latest De
  • 无法在 Gradle 中创建 Zip 存档

    我正在尝试创建一个简单的 Zip 存档 其中包含资源目录中的所有 javascript 文件 这是代码 task zip type Zip from resources include js into resources 由于某种原因 这似
  • 如何在gradle中执行jar文件?

    当我使用 ant 构建我的 android 项目时 我需要这样的任务
  • wagon-git 和 Gradle

    这个不错的小工具承诺帮助我将工件上传到私人 Bitbucket 存储库 http synergian github io wagon git bitbucket html http synergian github io wagon git
  • Android 设备监视器未出现

    当我单击 Android Studio 中的 ADM 图标时 我在日志中收到以下错误 我看到这里已经有一个关于此问题的线程 但解决方案似乎是针对 Eclipse 的 但是 今天 gradle 方面出现了一些问题 因此我在属性文件中将 htt
  • gradlew:appengineEnhance 失败

    我正在使用 Java 创建移动后端Google App Engine with Android Studio 为了启动公开我的 API 的本地服务器 我使用gradlew module name appengineRun 然而 当我去htt
  • 构建配置变量。错误:找不到符号

    在项目中我有几个flavors 一些buildTypes和几个folders用于组合 构建组合 文件夹结构 在每个文件夹中我都有自定义Application class AndroidManifest注册这个Application clas
  • 尝试在 Android 上使用 FFMPEG。编译但是还是不行

    首先 我尝试使用 ffmpeg 将图像数组编译成 Android 上的视频 我已经遵循了各种在线教程 并且已经能够编译 Android 的库 但仍然需要项目运行 我现在使用的存储库可以在这里找到 https github com Batte
  • Gradle 构建无法解析生成的类

    我刚刚将 Android Studio 从 1 5 更新到 2 2 1 Gradle 也是如此 我有一个项目 它使用注释处理器框架 由我制作 来执行类似 Dagger 的依赖注入 这在更新之前工作得很好 但现在 Gradle 无法解析生成的
  • IntelliJ - 无效源版本:17

    我已经在 IntelliJ 中使用 Gradle 创建了一个使用 Java 17 的新 Java 项目 运行我的应用程序时出现错误Cause error invalid source release 17 我的设置 我已经安装了openjd

随机推荐

  • UWP 中 ComboBox 的 CompositeCollection 的替代方案?

    我想为我的设置设置默认文本ComboBox 类似 请选择 对于 WPF 可以使用CompositeCollection如下但是CompositeCollectionUWP 中不可用 那么有什么替代方案吗
  • nginx 通过 uWSGI 在子目录中为 Django 提供服务

    我已经浏览过一些以前的线程 如何使用 Django 在 nginx 中设置子目录 https stackoverflow com questions 13282938 how do i set subdirectory in nginx w
  • std::begin 可以使用数组参数吗?如果可以,如何操作?

    我使用时遇到问题std begin and std end 来自iterator库 与 C 风格的数组参数 void SetOrigin const double i point 3 Vector v std copy std begin
  • 如何更改 ttk.Button 中的字体大小?

    这是我的问题 我正在为一个程序构建一个界面 但是为了老板的需要 字体必须更大 我已经毫无问题地更改了每个小部件的字体大小 但是对于 ttk Buttons 我无法更改它 我读到 ttk Button 不支持字体属性 但 tk Button
  • 我想将 Javascript 数组存储为 Cookie

    是否可能 我有某种列表 我想将其存储在浏览器上 如果不可能 执行此操作的有效方法是什么 JSON 对其进行编码 有效地生成一个字符串 例如 name myname age myage 您将其放入 cookie 中 在需要时检索并解码回 Ja
  • 在 Python 开源项目中合并第三方库的首选传统方式是什么?

    我正在为 WSGI 框架开发一个新的 Python 身份验证库 并希望使用python openid https github com openid python openid也许还有其他一些第三方库 我看到两个选项 分发我的库及其副本第三
  • Rails 4 友好 ID Slug 未更新

    我正在使用以下内容 gem friendly id github FriendlyId friendly id branch master 我正在我的 Rails 4 网站上创建一个文章部分 我遇到的问题是 当我更改现有文章的名称时 slu
  • 编写可维护的网络抓取工具的最佳实践是什么?

    我需要实现一些抓取工具来抓取一些网页 因为该网站没有开放的API 提取信息并保存到数据库 我目前正在使用 beautiful soup 来编写这样的代码 discount price text soup select detail main
  • 获取异常“NSRangeException”

    我在下面的方法中收到 substringWithRange range 的异常 我的文本视图禁用了编辑 我仅使用文本字段进行文本选择 当我第一次选择文本时也不例外 但当我第二次按下时它会通过 例外 NSRangeException 原因 N
  • fullcalendar google 集成返回 403 错误?

    我在尝试使用 fullcalendar 检索 Google 公共日历源时遇到 403 禁止错误 我注意到这个问题也存在于 fullcalendar 的演示中 这是来自 google 的更改吗 http fullcalendar io js
  • MissingSectionHeaderError:文件不包含节标题。(configparser)

    我使用 configparser 来自动读取和修改名为 streamer conf 的文件conf 我正在这样做 import configparser config configparser ConfigParser config rea
  • 参数 1 必须是 pygame.surface,而不是 list

    我正在编写一个小型 Python 游戏 但我的一些代码似乎不起作用 看一看 import pygame import sys import pygame sprite as sprite import time pygame init py
  • 内部类。它的目的是什么?

    有人能告诉我内部类的目的是什么吗 我可以想到一些 但可能它们不是使用内部类的充分理由 我的理由是 当您想要使用其他类无法使用的类时 内部类会很有帮助 还有什么 当我学习 Java 时 我们使用内部类来处理 GUI 事件处理类 它是一种 一次
  • 使用 GDIPlus (WIn32 C++) 显示存储为带 alpha 资源的图标

    我有一个带有部分 alpha alpha 值在 0 到 255 之间 的图标 我想使用 GDIPlus 显示该图标 当使用采用直接文件名的 GDI 位图构造函数时 文件可以正确显示 然而 当从资源加载时 它在识别 alpha 时遇到问题 我
  • openpyxl 合并单元格:格式问题

    假设我有一个 xlsx 文件 并且该 Excel 文件合并了单元格 A2 和 B2 我还选择该合并单元格 并在合并单元格的顶部和底部放置边框 当我执行以下操作时 wb openpyxl load workbook file xlsx wb
  • 未解析的对象 [INFORMATION_SCHEMA] 引用。[表]

    我创建了一个 UDF 来访问 INFORMATION SCHEMA TABLES view CREATE FUNCTION dbo CountTables name sysname RETURNS INT AS BEGIN RETURN S
  • data.table::fread 一个 `integer64` 类型,仅手动重写一列的 colClass

    我有一个 csv 其中一列 ID 包含一个带有前导零的长整数 fread将其转换为integer64类型 我如何指定一列的类 然后让fread自动猜测剩余列的类 不确定这是否是一种 全有或全无 的情况 我有 50 多列 并且不想仅仅因为必须
  • Storybook 全局 Scss 变量

    CLI 工具 故事书 框架 Vue Nuxt 问题 我试图将全局 SCSS 变量引入 Storybook Stories 以便它们以与 Nuxt 中相同的方式运行组件 我已经尝试使用 sass resources loader 进行自定义
  • 在 Ansible 中组合多个循环的输出

    我正在使用 Ansible 在我的剧本中运行以下任务 其中有多个循环 以便从特定 xml 检索不同的标签 name Retrieve multiple xml tags valuei xml xmlstring item string xp
  • 如何在Gradle中使用pom类型依赖

    我需要从我的 pom java 库中生成传递依赖 这是我如何做的一个例子 plugins java library maven publish repositories some maven repo dependencies This i