添加资源,configuration文件到您的jar使用gradle

如何使用Gradle将configuration文件或任何其他资源添加到我的jar中?

我的项目结构:

src / main / java / com / perseus / .. — Java包(源文件)

src / main / java / config / *。xml — Springconfiguration文件

预期的jar结构:

com / perseus / .. — Java包(类文件)

config / *。xml — Springconfiguration文件

将configuration文件从src/main/java移到src/main/resources

谢谢你们,我正在把一个现有的项目迁移到Gradle,不喜欢改变项目结构的想法。

我已经知道了,认为这些信息可能对初学者有用。

以下是我的“build.gradle”中的示例任务:

 version = '1.0.0' jar { baseName = 'analytics' from('src/main/java') { include 'config/**/*.xml' } manifest { attributes 'Implementation-Title': 'Analytics Library', 'Implementation-Version': version } 

默认情况下,任何添加到src/main/resources都将包含在jar中。

如果您出于任何原因需要更改该行为,则可以通过configurationsourceSets

这部分文档包含了所有的细节

我碰到这个post,search如何添加额外的资源目录。 我find了可能对某人有用的解决scheme。 这是我最后的configuration来得到这个:

 sourceSets { main { resources { srcDirs "src/main/resources", "src/main/configs" } } } 

我遇到了同样的问题。 我在一个Java包中有一个PNG文件,它并没有在最终的JAR中与源一起导出,导致应用程序在启动时崩溃(文件未find)。

上面的答案都没有解决我的问题,但我在Gradle论坛上find了解决scheme。 我将下面添加到我的build.gradle文件中:

 sourceSets.main.resources.srcDirs = [ "src/" ] sourceSets.main.resources.includes = [ "**/*.png" ] 

它告诉Gradle在src文件夹中查找资源,并要求它只包含PNG文件。

编辑:要小心,如果你使用Eclipse,这将打破你的运行configuration,你会得到一个main class not found错误时,试图运行您的程序。 为了解决这个问题,我find的唯一解决scheme是将图像移动到另一个目录,例如res/ ,并将其设置为srcDirs而不是src/