Мне нужно создать простое приложение для моего клиента, настроить и запустить его на своем сайте.Я использую среду Spring, поэтому у меня есть несколько файлов конфигурации, которые должны быть в пути к классам.Я использую Maven2 с Netbeans в качестве своей IDE.
Я могу создавать и запускать свое приложение с помощью Netbeans / Maven, и я использую плагин Application Assembler Maven для создания работающего приложения.Все это прекрасно работает, за исключением того, что мои конфигурационные файлы Spring должны быть помещены в src / main / resources , что означает, что они упакованы в получившийся файл JAR.
Мне нужно, чтобы мой клиент былв состоянии изменить файлы конфигурации, чтобы выполнить их тестирование, но нецелесообразно просить их изменить копии, упакованные в JAR.
Возможно, существует ряд решений, но мне кажется, чтопроще всего было бы заставить Maven вообще не упаковать приложение и файлы конфигурации в JAR, просто оставив их в каталоге, подобном каталогу classes , из которого они могут быть запущены.Это позволит пользователю легко изменять файлы конфигурации.К сожалению, я не могу понять, как заставить Maven «упаковать» приложение таким образом, или как заставить AppAssembler сгенерировать итоговый исполняемый файл.
Вот выдержка из моего pom.xml, которая можетпомогите проиллюстрировать, что я пытаюсь сделать:
...
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
... stuff deleted ...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.2</version>
<configuration>
<!-- Set the target configuration directory to be used in the bin scripts -->
<configurationDirectory>conf</configurationDirectory>
<!-- Copy the contents from "/src/main/config" to the target
configuration directory in the assembled application -->
<copyConfigurationDirectory>true</copyConfigurationDirectory>
<!-- Include the target configuration directory in the beginning of
the classpath declaration in the bin scripts -->
<includeConfigurationDirectoryInClasspath>
true
</includeConfigurationDirectoryInClasspath>
<platforms>
<platform>windows</platform>
</platforms>
<programs>
<program>
<mainClass>org.my.path.App</mainClass>
<name>app</name>
</program>
</programs>
</configuration>
</plugin>
</plugins>
</build>
...