Maven Exposing属性文件appassembler

时间:2012-06-06 06:14:48

标签: spring maven properties appassembler

要加载特定于环境的值,在我的src / main / resources文件夹中,我在不同的子文件夹中有一些属性文件,即

  • com / app / ws / webservices-dev.properties
  • com / app / ws / webservices-test.properties
  • COM /应用/ JMS / jms-dev.properties
  • COM /应用/ JMS / jms-test.properties

我正在通过spring加载这些属性

<bean id="placeholderProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>              
            <value>classpath:/com/app/jms/jms-${ENVIRONMENT:dev}.properties</value>
            <value>classpath:/com/app/ws/webservices-${ENVIRONMENT:dev}.properties</value>
        </list>
    </property>
    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
    <property name="ignoreResourceNotFound" value="true" />
    <property name="ignoreUnresolvablePlaceholders" value="true" />
    <property name="order" value="0" />
</bean>

环境是环境变量。

我正在使用appassembler-maven-plugin来生成可执行的.sh文件。

       <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>appassembler-maven-plugin</artifactId>
            <version>1.2.2</version>
            <configuration>
                <binFileExtensions>
                    <unix>.sh</unix>
                </binFileExtensions>
                <programs>
                    <program>
                        <mainClass>com.app.MainApp</mainClass>
                        <name>MainApp</name>
                    </program>
                </programs>
            </configuration>
        </plugin>

因此,我的所有属性文件都成为生成的jar文件的一部分。我想公开一些属性来在部署时设置它们的值。我试过以下配置

       <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>appassembler-maven-plugin</artifactId>
            <version>1.2.2</version>
            <configuration>
                <configurationSourceDirectory>src/main/resources/com/app/bootstrap</configurationSourceDirectory>
                <configurationDirectory>conf</configurationDirectory>
                <copyConfigurationDirectory>true</copyConfigurationDirectory>
                <includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath> 
                <binFileExtensions>
                    <unix>.sh</unix>
                </binFileExtensions>
                <programs>
                    <program>
                        <mainClass>com.app.MainApp</mainClass>
                        <name>MainApp</name>
                    </program>
                </programs>
            </configuration>
        </plugin>           

但Spring没有加载属性;可能是由于spring config中的给定路径(见上文)。

我应该使用什么maven配置在打包期间在appassembler \ conf文件夹中移动我的属性文件,并从类路径中弹出它们。我的配置适用于开发(在eclipse,单元测试作为maven构建)和部署中。

0 个答案:

没有答案