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>' )
}
}