gpt4 book ai didi

gradle - 如何在gradle中针对本地文件进行编译?

转载 作者:行者123 更新时间:2023-12-03 04:02:52 34 4
gpt4 key购买 nike

对于我们构建中的每个子项目,我们都有一个这样的结构:

apply from: '../dependencies.gradle'

dependencies {
... omitting other dependencies ...

compile libraries.poi
}

这些库在 dependencies.gradle中定义,如下所示:
ext.libraries = [
... omitting other libraries ...

poi: [
'poi:poi:3.9.custom.1',
'poi:poi-ooxml:3.9.custom.1',
'poi:poi-ooxml-schemas:3.9.custom.0',
'poi:poi-scratchpad:3.9.custom.0',
],

... omitting other libraries ...
]

几天前,我想尝试对夜间构建的POI进行一些尝试。每晚构建不会进入其存储库,因此我不得不尝试使其与本地文件一起使用。

在文档中查找,您应该为此使用 files(...),所以我尝试了以下操作:
  poi: [
files('/path/to/poi-3.14-beta1/poi-3.14-beta1-20151027.jar'),
files('/path/to/poi-3.14-beta1/poi-3.14-ooxml-20151027.jar'),
files('/path/to/poi-3.14-beta1/poi-3.14-ooxml-schemas-20151027.jar'),
files('/path/to/poi-3.14-beta1/poi-3.14-scratchpad-20151027.jar'),
],

运行此命令时,出现错误:
* What went wrong:
A problem occurred evaluating root project 'product'.
> Cannot convert the provided notation to an object of type ModuleVersionSelector: file collection.
The following types/formats are supported:
- Instances of ModuleVersionSelector.
- String or CharSequence values, for example 'org.gradle:gradle-core:1.0'.
- Maps, for example [group: 'org.gradle', name:'gradle-core', version: '1.0'].
- Collections or arrays of any other supported format. Nested collections/arrays will be flattened.

因此,实际上 files()似乎实际上不起作用,因为它没有返回此处列出的内容之一。

正确的方法是什么? (假设甚至有可能!)

编辑:更多信息

现在我更新到Gradle 2.8,我得到了一个指向该问题的行号。它指出了一些自定义构建代码,我们将它们用于解决Gradle在依赖关系解析方面的问题:
  resolutionStrategy {
libraries.each {
libraryName, libraryList ->
libraryList.each {
library -> force library // 👈 this line
}
}

failOnVersionConflict()
}

因此,我认为问题在于,力量不支持其他方法所支持的所有相同事物吗?

最佳答案

我的解决方法是过滤掉FileCollection类型的元素:

  resolutionStrategy {
libraries.each { libraryName, libraryList ->
[libraryList].flatten()
.findAll { library ->
!(library instanceof FileCollection)
}
.each { library -> force library }
}

failOnVersionConflict()
}

也许有更好的方法。

关于gradle - 如何在gradle中针对本地文件进行编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33429597/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com