问题标签 [gradle-dependencies]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
42762 浏览

gradle - 在 Gradle 中,如何在一个地方声明公共依赖项?

在 Maven 中有一个非常有用的功能,您可以<dependencyManagement>在父 POM 的部分中定义依赖项,并从子模块引用该依赖项,而无需指定版本或范围或其他任何内容。

Gradle 中有哪些替代方案?

0 投票
8 回答
178283 浏览

java - 使用 Gradle 时如何排除传递依赖项的所有实例?

我的 gradle 项目使用application插件来构建一个 jar 文件。作为运行时传递依赖的一部分,我最终引入了org.slf4j:slf4j-log4j12. (它在至少 5 或 6 个其他传递依赖项中被引用为子传递依赖项 - 这个项目使用 spring 和 hadoop,所以除了厨房水槽之外的所有东西都被拉进来......不用等待......那也是 :) )。

我想slf4j-log4j12从我构建的 jar 中全局排除 jar。所以我试过这个:

但是,这似乎排除了所有 org.slf4j工件,包括slf4j-api. 在调试模式下运行时,我看到如下行:

我不想查找每个slf4j-log4j12传递依赖的来源,然后在我的块中有单独compile foo { exclude slf4j... }的语句。dependencies

更新:

我也试过这个:

最终排除了构建中的所有内容!好像我指定了group: "*".

更新 2:

我为此使用 Gradle 1.10 版。

0 投票
11 回答
118682 浏览

java - 如何强制 Gradle 为两个依赖项设置相同的版本?

我使用以下两个依赖项:

两者必须是相同的版本才能正常工作。由于我的其他依赖项使用更高版本,Gradle 对每个依赖项使用不同的版本。

我通过运行找到了这个gradle dependencies

如何强制 Gradle 为这两个依赖项设置相同的版本?

0 投票
1 回答
123 浏览

android - 导入 Android 精选照片

我们正在尝试导入 android-pickphotos 项目(https://github.com/crosswall/Android-PickPhotos)以使用照片选择器,但我们遇到了一些麻烦。我们在任何地方都没有找到 gradle 模块,当尝试从目录中导入模块时,我们会遇到以下错误:

我们如何才能导入和使用该库?是否有任何其他类似的库可以通过 gradle 的模块导入并允许一些颜色自定义?

提前致谢。

0 投票
2 回答
4881 浏览

gradle - 解决 gradle 构建脚本依赖

如何检查构建 gradle 脚本的解析依赖项。例如,我有插件 1 和插件 2,我怎样才能弄清楚是什么依赖关系拉动了它们,并且分别拉动了它们?

是否有任何参数可以打印出此信息?

0 投票
0 回答
763 浏览

java - Android Studio - 为标准 Java 项目创建具有依赖项的 JAR 文件

我正在构建一个标准的 java 项目,而不是一个 android 项目。

它使用 Google 的 Gson 库。有没有办法为这个项目创建一个 JAR 文件,同时维护对 Gson 库的依赖关系?如果我提出的问题是错误的,请纠正我。

我的模块的 build.gradle 如下所示:

我使用此处的说明创建了一个 JAR 文件,但是当我使用“java -jar myproject.jar”从命令行运行它时,我收到此错误:

在 myproject.jar 中没有主要清单属性

我尝试寻找解决方案,但似乎没有办法创建具有依赖关系的 JAR 文件,尽管上面的链接非常新。在这种情况下,似乎我必须制作一个 AAR 文件。

但是由于我的是一个java项目而不是android,这仍然适用吗?

谢谢。

编辑:根据此视频,我的 Manifest.MF 文件缺少“Main-Class:MyMainClassName”行。从 JAR 修改文件会损坏它。而且我无法从 android studio 中编辑清单文件。关于如何改变这一点的想法?

0 投票
0 回答
1255 浏览

spring - gradle项目中的Spring-data-Jpa和Hibernate-entitimanager依赖冲突

我有一个毕业项目。我是 gradle 新手,并将我的一个项目转换为 gradle。我的项目正在运行,然后它开始让我出错。然后我注意到,如果我注释掉我的 Hibernate-entitymanger 依赖项,那么就没有错误。

这是我的 build.gradle 片段

我只是在做

当我这样做时,它给了我错误

但是,如果注释掉我的hibernate-entitymaanger依赖项,那么它就可以正常工作。喜欢

我还运行依赖树任务。这是我得到的

default - 默认工件的配置。

runtime - 源集“main”的运行时类路径。

我该如何解决这个问题?为什么在包含的情况下我会出错Hibernate-entitymanger

谢谢

0 投票
2 回答
1168 浏览

android - 无法在 Android 中导入 LastModifiedFileComparator

我正在尝试使用 LastModifiedFileComparator 引用http://www.avajava.com/tutorials/lessons/how-do-i-sort-an-array-of-files-according-to-their-last-modified-dates。 Android.LastModifiedFileComparator 中的html没有被使用 import 语句解析 -

我在依赖项中添加了以下语句,但它仍然无法正常工作。请帮忙。

0 投票
1 回答
5762 浏览

android - Gradle依赖排除不起作用

我的项目build.gradle依赖项是:

co.realtime :messageing-android build.gradle依赖项是:

如果我尝试编译我的项目,我会收到以下错误:

错误:Gradle:任务':app-module:processProdDebugResources'的执行失败。错误:多个库的包名称为 'com.google.android.gms' 您可以使用 android.enforceUniquePackageName=false 暂时禁用此错误 但是,这是暂时的,将在 1.0 中强制执行

如果我使用enforceUniquePackageName(false)我得到:

无法将符号解析为GoogleCloudMessaging.INSTANCE_ID_SCOPE

所以我想我必须通过管理依赖关系来解决这个问题。我试过了:

但是没有任何接缝可以工作......我该如何解决这个问题?
谢谢。

0 投票
1 回答
169 浏览

gradle - 自定义增量 Gradle 编译任务的依赖项

如果希望我的编译任务是增量的,我想知道使用具有传递依赖关系的文件管理自定义编译步骤的最佳方法。这是特定的用例:我有一个充满模板的目录(在这种情况下为车把模板)。可以说这些都在一个pages目录中。其中一些模板包括其他模板(Handlebars partials)。假设包含的模板位于includes. 编译所有模板相当容易。例如,我可以使用 handlebars 命令handlebars <input-file>来编译每个文件pages(例如for (File file : srcDir) { project.exec { commandLine 'handlebars', file.name }}.

当调用handlebars 命令时,会编译input-file并在必要时提取任何包含的模板input-file以及包含添加等的任何模板。无需赘述,我还可以在编译时了解模板的全部传递依赖项它。所以,例如,如果模板A包含B和C,而B在编译过程中包含E,AI会知道如果B,C或E发生变化,我需要重新编译A。注意,我几乎需要编译模板学习这些信息,因为我需要解析它并确定它包含的所有位置,这些包含如何解析等。

我想创建一个编译文件的自定义增量任务,但仅在必要时。我知道如何声明此任务的输入,并且我知道如何在内存中维护从包含目录中的文件到直接或传递依赖它的页面中的模板的映射。因此,如果 IncrementalTask​​Inputs.outOfDate 包括,例如,includes/EI 知道我需要重新编译 A。到目前为止一切都很好,但我不清楚让这个实际工作的最佳方法。

显然,仅将依赖项存储在内存中是行不通的,因为守护进程可能会重新启动,甚至可能不会运行(而且我并不完全清楚哪些对象在运行之间的守护进程中仍然存在于内存中)。据我了解,Gradle 维护某种缓存,因此它能够计算正确的 IncrementalTask​​Inputs 并知道,例如,自上次运行以来仅包含/E 更改。因此,我不知何故需要维护一个依赖项缓存,以便在必要时从磁盘中读取。我可以通过将它们写入文件来手动执行此操作,但这似乎很容易出错。例如,不合时宜的 Ctrl-C 可能会使我的缓存与 Gradle 的缓存过时。我猜有一个内置系统允许我简单地声明依赖项并让 Gradle 负责将其与它自己的缓存一起保存。或者更好的是,也许有一个现有的基类可以处理这种事情,而我所要做的就是声明依赖关系是什么?有这样的事吗?