Gradle - 将目录添加到类路径

时间:2016-02-22 03:35:39

标签: java gradle classpath build.gradle

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

dependencies {
    ... //runtime, compile dependencies pulled from repositories
    runtime files('config')
}

我正在使用application插件为我的项目创建一个独立的zip。如果我的\config目录包含\config\subdirfile1file2,则插件会生成一个build\install目录,其中包含以下结构:

| 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将另一个目录添加到构建中并将其指定为生成的启动脚本的类路径的一部分?

3 个答案:

答案 0 :(得分:6)

应用程序插件documentation说:

  

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

我会尝试将您的配置目录放入src/dist/lib并继续使用runtime files('src/dist/lib/config')

将其添加到您的类路径中

注意:解决this defect意味着配置必须进入/lib下的src/dist

答案 1 :(得分:3)

你可以试试这个:

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

   startScripts {
       classpath += files('src/dist/lib/conf')
   }

可以找到更多信息here

答案 2 :(得分:1)

jar {
    manifest {
        attributes('Class-Path' : '<directory>' )
    }
}

以上对我有用