Gradle - 将目录添加到classpath

Oma*_*ish 11 java classpath gradle build.gradle

我的应用程序要求\config在类路径中查找目录下的配置文件时可以使用目录.我目前有依赖配置,但这可能不是使我的应用程序可用的目录的正确方法:

dependencies {
    ... //runtime, compile dependencies pulled from repositories
    runtime files('config')
}
Run Code Online (Sandbox Code Playgroud)

我正在使用该application插件为我的项目创建一个独立的zip.如果我的\config目录中有\config\subdir,file1,file2,则该插件产生build\install结构如下目录:

| build
| --|install
| ----|bin
| ------ projectName
| ------ projectName.bat
| ----|lib
| ------ dependency1.jar
| ------ dependency2.jar
| ------|subdir
| ------ file1
| ------ file2
Run Code Online (Sandbox Code Playgroud)

这对我的应用程序不起作用,因为它显式地需要一个\config目录

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

| build
| --|install
| ----|bin
| ------ projectName
| ------ projectName.bat
| ----|lib
| ------ dependency1.jar
| ------ dependency2.jar
| ----|config
| ------|subdir
| ------ file1
| ------ file2
Run Code Online (Sandbox Code Playgroud)

如何让gradle将另一个目录添加到构建中并将其指定为生成的启动脚本的类路径的一部分?

And*_*kov 7

你可以试试这个:

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

   startScripts {
       classpath += files('src/dist/lib/conf')
   }
Run Code Online (Sandbox Code Playgroud)

更多信息可以在这里找到。


RaG*_*aGe 6

应用程序插件文档说:

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

我会尝试将您的config目录放入src/dist/lib并继续将其添加到您的类路径中runtime files('src/dist/lib/config')

注:工作围绕这一缺陷意味着,配置有进入/libsrc/dist

  • 叹了口气,看起来你遇到了这个问题:https://issues.gradle.org/browse/GRADLE-2991,不,你不应该在构建后手动编辑任何脚本.我能想到的最简单的解决方法是将你的配置文件夹放在`/ src/dist/lib`中 (2认同)