Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 配置Gradle项目,让JAR在运行时在特定文件夹中查找依赖项工件_Java_Gradle_Kotlin - Fatal编程技术网

Java 配置Gradle项目,让JAR在运行时在特定文件夹中查找依赖项工件

Java 配置Gradle项目,让JAR在运行时在特定文件夹中查找依赖项工件,java,gradle,kotlin,Java,Gradle,Kotlin,抱歉如果这个问题已经被问到了,Gradle的进入门槛似乎很高,我不知道该搜索什么 我的Kotlin项目依赖于各种工件来提供Kotlin运行时,例如Kotlin-stdlib-jdk8-1.2.60.jar Kotlin库正在由原始Java应用程序加载 我需要通知Kotlin library JAR,我正在分发它,以便在/Kotlin目录(相对于它将被放置的目录)中查找它的运行库和任何其他依赖项。根据我所看到的,我需要将其添加到runtimeClasspath或类似文件中,但我不确定如何添加 感谢

抱歉如果这个问题已经被问到了,Gradle的进入门槛似乎很高,我不知道该搜索什么

我的Kotlin项目依赖于各种工件来提供Kotlin运行时,例如
Kotlin-stdlib-jdk8-1.2.60.jar

Kotlin库正在由原始Java应用程序加载

我需要通知Kotlin library JAR,我正在分发它,以便在
/Kotlin
目录(相对于它将被放置的目录)中查找它的运行库和任何其他依赖项。根据我所看到的,我需要将其添加到
runtimeClasspath
或类似文件中,但我不确定如何添加


感谢您的帮助。

如果您的JAR是全世界公开的,您只需要在
build.gradle
(模块,而不是项目)中声明它们


Gradle会把它们捡起来,不需要将它们存储在您的项目中。

您是否将这些罐子签入到您的项目中?大多数项目从远程存储库(如Maven Central)获取依赖项,这非常容易配置和管理。您熟悉Maven吗?Gradle基本上是一样的。我已经将build.Gradle配置为从Maven Central下载并使用Kotlin stdlib库,是的-但是当我分发JAR时,Kotlin libs将存储在本地相对于库的
Kotlin
文件夹中。这不是一个好办法吗?否则我将依赖于客户使用Gradle。这不是一个好方法!Kotlin是一种JVM语言,为了运行应用程序,需要一个JVM。Kotlin被翻译成字节码并在JVM中执行,就像普通Java应用程序afaik一样。用户必须为其硬件架构安装JVM。因此,您的应用程序不应附带任何内容。@sschras,嗯?我在问题中说,库将由一个原始Java应用程序加载,因此我确信客户端有一个完全工作和配置的JVM,因为它已经在运行应用程序了——我的Kotlin插件将在运行时加载。问题仅仅是配置的问题,这样我的库就知道在哪里可以找到。谢谢,但是Gradle不会在客户端使用,所以它不能直接获取它们。我实际上想创建一个胖jar,但不是将所有文件捆绑到一个jar中(在我的情况下不可能,因为存在重复文件等),而是将它们作为单个工件分发。我希望Kotlin运行时存储在相对于库的
/Kotlin
文件夹中。我仍然认为没有什么比Kotlin运行时更好的了。它更像是一个包含支持类的库,支持类被转换成字节码,并在JVM(JRE)中执行。字节码将是相同的(我假设),就好像它是用java编写的一样。
implementation 'com.squareup.retrofit2:converter-scalars:2.3.0'