如何使用下载的二进制文件将 Apache Derby 作为 Gradle 依赖项包含在内
How to include Apache Derby as a Gradle dependency using downloaded binaries
我非常了解 Java 并且是一名经验丰富的 C/Python 程序员,但在涉及 Gradle 时我可能有一些基本的误解。
我在终端开发 vim,这就是我。我在我的系统上设置了 Apache Derby:下载、环境变量设置等。我想在我用 Gradle 构建的 Java 项目中使用它,但我不知道如何将其包含在 Maven 存储库以外的依赖项中。
如果我这样做:
testCompile group: 'org.apache.derby', name: 'derby', version: '10.5.3.0'
我的理解是,这会再次从 Maven 存储库下载它。我想使用我的系统 Derby 是不是以错误的方式处理事情,还是有办法将 Gradle 指向它?如果这个问题充斥着误解,我将不胜感激。
谢谢。
+1 使用 vim/terminal,太棒了!
Gradle 非常灵活,可以满足您的任何要求 - 尽管有最佳实践,请参见下文。您可以拥有一个包含所有库的 libs/ 文件夹,然后将 Gradle 指向它:
dependencies {
implementation fileTree('libs') { include '*.jar' }
}
这会将 libs/ 文件夹中的所有 JAR 添加到您的类路径中。 Gradle 称其为 file dependency。 libs 文件夹不必位于您的项目目录中,所以是的,您也可以指向系统范围的库。
但是
Gradle 有一个非常先进的缓存机制,可以最大限度地减少网络使用,甚至可以平衡本地存储需求。它还将可靠地在项目之间共享下载。你想用这个。
此外,许多 Java 库都有自己的依赖项(“传递依赖项”),通常有很多,导致整个依赖树。由于所有这些的传递闭包最终都会出现在您的类路径中,因此可能会发生冲突,Gradle 将为您解决。您将不想执行手动依赖项解析。
另外,你的项目将更容易为其他人编译,因为 Gradle 将确保依赖项已加载并存在。而“系统德比”需要在 运行 Gradle.
之前以其他方式安装
文件依赖性也有无数其他问题,所以我敦促你让 Gradle 为你处理这个问题并使用你问题中的语法:
dependencies {
implementation group: 'org.apache.derby', name: 'derby', version: '10.5.3.0'
}
Here 关于所谓的“配置”的更多信息,例如 testCompile
和 implementation
可帮助您选择正确的配置。
所有这些都将与 Vim 和终端完美配合。事实上,我经常在 IntelliJ 中开发时从终端调用 Gradle。
我非常了解 Java 并且是一名经验丰富的 C/Python 程序员,但在涉及 Gradle 时我可能有一些基本的误解。
我在终端开发 vim,这就是我。我在我的系统上设置了 Apache Derby:下载、环境变量设置等。我想在我用 Gradle 构建的 Java 项目中使用它,但我不知道如何将其包含在 Maven 存储库以外的依赖项中。
如果我这样做:
testCompile group: 'org.apache.derby', name: 'derby', version: '10.5.3.0'
我的理解是,这会再次从 Maven 存储库下载它。我想使用我的系统 Derby 是不是以错误的方式处理事情,还是有办法将 Gradle 指向它?如果这个问题充斥着误解,我将不胜感激。
谢谢。
+1 使用 vim/terminal,太棒了!
Gradle 非常灵活,可以满足您的任何要求 - 尽管有最佳实践,请参见下文。您可以拥有一个包含所有库的 libs/ 文件夹,然后将 Gradle 指向它:
dependencies {
implementation fileTree('libs') { include '*.jar' }
}
这会将 libs/ 文件夹中的所有 JAR 添加到您的类路径中。 Gradle 称其为 file dependency。 libs 文件夹不必位于您的项目目录中,所以是的,您也可以指向系统范围的库。
但是
Gradle 有一个非常先进的缓存机制,可以最大限度地减少网络使用,甚至可以平衡本地存储需求。它还将可靠地在项目之间共享下载。你想用这个。
此外,许多 Java 库都有自己的依赖项(“传递依赖项”),通常有很多,导致整个依赖树。由于所有这些的传递闭包最终都会出现在您的类路径中,因此可能会发生冲突,Gradle 将为您解决。您将不想执行手动依赖项解析。
另外,你的项目将更容易为其他人编译,因为 Gradle 将确保依赖项已加载并存在。而“系统德比”需要在 运行 Gradle.
之前以其他方式安装
文件依赖性也有无数其他问题,所以我敦促你让 Gradle 为你处理这个问题并使用你问题中的语法:
dependencies {
implementation group: 'org.apache.derby', name: 'derby', version: '10.5.3.0'
}
Here 关于所谓的“配置”的更多信息,例如 testCompile
和 implementation
可帮助您选择正确的配置。
所有这些都将与 Vim 和终端完美配合。事实上,我经常在 IntelliJ 中开发时从终端调用 Gradle。