Search code examples
gradlejarbuild.gradleembedded-resource

Add resources and config files to your JAR using Gradle


How do I add config files or any other resources into my jar using gradle?

My project structure:

src/main/java/com/perseus/.. --- Java packages (source files)

src/main/java/config/*.xml --- Spring config files

Expected jar structure:

com/perseus/.. --- Java packages (class files)

config/*.xml --- Spring config files


Solution

  • Thanks guys, I was migrating an existing project to Gradle and didn't like the idea of changing the project structure that much.

    I have figured it out, thought this information could be useful to beginners.

    Here is a sample task from my '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
       }
    }