Maven: properties-file alongside jar

jar, maven, maven-3, maven-plugin, properties-file

Solution

Okay, one can use goal resources:copy-resources of maven-resources plugin. I am just leaving standard resources folder for embedded (into jar) resources. And for external resource I create another folder: `src/main/external-resources`. Here I put my .properties-file.

Following piece will copy external resources to output dir upon validate phase. You can alter the phase per your own needs.

        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/external-resources</directory>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Problem

I am packaging my application as jar. ``` <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive> <manifest> <mainClass>...</mainClass> </manifest> </archive> </configuration> </plugin> ``` And also I have my .properties-file placed inside of `src/main/resources`. I can freely move this file to any other place. I don't want properties-file to be included into jar, but rather placed into the same output directory (where we get jar) side-by-side. What is the best practice for this in Maven?

Original source