Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.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-将目录添加到类路径_Java_Gradle_Classpath_Build.gradle - Fatal编程技术网

Java Gradle-将目录添加到类路径

Java Gradle-将目录添加到类路径,java,gradle,classpath,build.gradle,Java,Gradle,Classpath,Build.gradle,当我的应用程序在目录下查找配置文件时,它要求类路径上有一个\config目录。我目前有这样配置的依赖项,尽管这可能不是使我的应用程序可以使用目录的正确方法: dependencies { ... //runtime, compile dependencies pulled from repositories runtime files('config') } 我正在使用应用程序插件为我的项目创建一个独立的zip。如果我的\config目录具有\config\subdir,文件1

当我的应用程序在目录下查找配置文件时,它要求类路径上有一个
\config
目录。我目前有这样配置的依赖项,尽管这可能不是使我的应用程序可以使用目录的正确方法:

dependencies {
    ... //runtime, compile dependencies pulled from repositories
    runtime files('config')
}
我正在使用
应用程序
插件为我的项目创建一个独立的zip。如果我的
\config
目录具有
\config\subdir
文件1
文件2
,则插件将生成具有以下结构的
构建\安装
目录:

| build
| --|install
| ----|bin
| ------ projectName
| ------ projectName.bat
| ----|lib
| ------ dependency1.jar
| ------ dependency2.jar
| ------|subdir
| ------ file1
| ------ file2
这不适用于我的应用程序,因为它显式地需要一个
\config
目录

但是,这是我需要的目录结构:

| build
| --|install
| ----|bin
| ------ projectName
| ------ projectName.bat
| ----|lib
| ------ dependency1.jar
| ------ dependency2.jar
| ----|config
| ------|subdir
| ------ file1
| ------ file2
如何让gradle向构建添加另一个目录,并将其指定为生成的启动脚本的类路径的一部分?

应用程序插件说:

要添加到发行版的静态文件可以简单地添加到src/dist

我会尝试将您的配置目录放入
src/dist/lib
,并继续使用
运行时文件('src/dist/lib/config')

注意:处理意味着配置必须进入
src/dist
下的
/lib
,您可以尝试以下操作:

project('project-name') {
   apply plugin: 'application'
   mainClassName = "your.main.Class"

   startScripts {
       classpath += files('src/dist/lib/conf')
   }
可以找到更多信息。

jar{
显示{
属性('类路径':'')
}
}

以上内容对我有用

您的配置文件夹位于源目录中的何处?如果它位于
src/main/resources
中,我会想象应用程序插件也会将其打包,但它不在源目录中。它在项目根文件夹中。是否应该移动它?如何将其添加到类路径?是的,我建议将其移动到我在下面发布的/src/dist。我尝试将配置文件夹移动到
src/main/resources
,但我的应用程序没有接收到它。我做错了什么?我试过这种方法。我现在可以得到我在问题中描述的第二个目录结构,但是在生成的脚本中类路径仍然不正确。它将类路径定义为
set classpath=%APP\u HOME%\lib\config
,而它应该是
set classpath=%APP\u HOME%\config
。如何实现这一点?如果我手动将生成的脚本配置为
set CLASSPATH=%APP\u HOME%\config
,我的应用程序工作正常,但这绝对不是理想的。我不应该编辑构建输出,对吗?唉,看起来你遇到了这样的问题:不,构建之后你不应该手工编辑任何脚本。我能想到的最简单的解决方法是将配置文件夹放在
/src/dist/lib
jar {
    manifest {
        attributes('Class-Path' : '<directory>' )
    }
}