wrm
wrm

Reputation: 1908

Maven Assembly: config files best practice

I have a multi-module maven project, including a seperate assembly-project. As i develop and run my application from eclipse (during development), i have specific configuration-files (e.g. log4j or other property-files) in my main-module (which contains the main-class). These files contain development-time-specific information. The assembly-project contains each of the config-files for production. The assembled product then should use these configs instead. This is my current setup:

MainModule/src/main/resources
     +configA.properties
     +log4j.properties
Module1/src/main/resources
     +configB.properties
AssemblyProj/src/main/resources
     +configA.properties
     +configB.properties
     +log4j.properties

And the generated project has this structure:

libs/
   +MainModule.jar
   +Module1.jar
configs/
   +configA.properties
   +configB.properties
   +log4j.properties

the config-directory overlays the config-files in each *.jar because of the classpath, i.e.

java -cp configs/;libs/* My.Main.Class

Now the problem that i have, is that there are still all dev-configs included in each jar. Also i have kind of a bad feeling about using that overlay-classpath-method. Is there any practice on how to do this in a better manner?

Upvotes: 2

Views: 583

Answers (1)

carlspring
carlspring

Reputation: 32607

Extract these resources into classifier-based dependencies for each of the mentioned modules. Then define <profiles/> that trigger their usage. In your assembly use the classifiers as necessary.

Upvotes: 2

Related Questions