Moving property files outside jar in spring standalone application
In one of Spring standalone project, we needed to move the property files out of the jar for easy configurability.
I followed following steps:
1. Move property files out of JAR and put in a directory say “target/lib”
<plugin>
<artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>validate</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <copy todir="target/lib" overwrite="true"> <fileset dir="src/main/resources/"> <include name="*.properties"/> <include name="*.xml"/> </fileset> </copy> </tasks> </configuration> </execution> </executions> </plugin>2. Exclude inclusion of files from the JAR. This will include only .hbm files in resource and any XML file in META-INF (I wanted to keep application-context.xml used by spring inside JAR)
<resource>
<directory>${basedir}/src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/*.hbm.xml</include> <include>META-INF/*.xml</include> </includes></resource><plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass> com.usat.digitalportal.service.impl.BootStrap </mainClass> </manifest> <manifestEntries> <Class-Path>. lib</Class-Path> </manifestEntries> </archive> </configuration></plugin> a. Use “classpathPrefix” to specify folder name in which all properties will be placed.
b. Use “Class-Path” to specify the folder. “.” Indicate current folder, while “lib” specifies “lib” folder in same directory as JAR (I have used lib).
4. Changes in spring application-context.xml
a. Add line to look for property file in declared class path
<context:property-placeholderlocation="classpath*:**/settings.properties, classpath*:**/usat.properties” />
b. Add line to import resources from class path
<importresource="classpath*:**/dao-config.xml"/>
This is all which is needed. Run maven target as –X clean install and it should Generate a lib folder
浙公网安备 33010602011771号