Rodrigo Rodrigues
Rodrigo Rodrigues

Reputation: 669

Include files (.properties files) in gradle builld into the same of directory of the .class

The follow structure

src
  service
     service1
        Service.java
        Service.properties

I want that the output generated by gradle would be

classes
   service
        service1
          Service.class
          Service.properties

So, I need that the files(.properties) keep in the same directory of the class after build, but the gradle copy the files .properties (resources) to another directory

how can I do it?

Upvotes: 2

Views: 1849

Answers (1)

dev
dev

Reputation: 2979

I assume you are trying to place them there so they can be loaded from the classpath? The best way to make them available to your class loader is to place them into src/main/resources which is part of the standard directory layout. Gradle will find them there and they will be placed at the root of your jar (by default I believe it ignores property files in src/main/java).

It would also be good to move your java files to to src/main/java. Using the standard directory layout is a convention that will help other developers understand the code. It also allows you to use certain tools out of the box with less configuration because those tools can make assumptions about where things live.

So the new structure would be like:

service1-project
    src
        main
            java
                service1.java
            resources
                service.properties

If you use the standard directory layout, I think you will achieve the end-result of what you are trying to do (which is really to load the properties file within Java). If for some reason you have to avoid the standard directory layout, then you have to start doing custom configuration (a downside of using a non-standard project layout). In Gradle, you should be able to do this by hooking into the Java Plugin's processSourceSetResources target.

Upvotes: 2

Related Questions