Mavenを使用して選択されたプロファイルに応じて、リソースをクラスパスにコピーしようとしています。私のリソースフォルダー構造は次のとおりです。
src/main/resources:
config
production
development
staging
私の現在機能していない設定は
<profile>
<id>development</id>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>envtype</name>
<value>dev</value>
</property>
</activation>
<build>
<finalName>Corelay</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<excludes>
<exclude>**/production/**</exclude>
<exclude>**/staging/**</exclude>
</excludes>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<excludes>
<exclude>**/production/**</exclude>
<exclude>**/staging/**</exclude>
</excludes>
</testResource>
</testResources>
</build>
</profile>
config/hibernate/hibernate-config.xml の下の hibernate 構成ファイルで、同じパッケージからいくつかのプロパティを要求します
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath*:**/jdbc.properties</value>
<value>classpath*:**/hibernate.properties</value>
</list>
</property>
</bean>
しかし、エラーがあります:
Could not resolve placeholder 'jdbc.driverClassName' in string value "${jdbc.driverClassName}"
このプロパティはそのファイルで定義されています。どうしたの?もう 1 つの質問は、これらのプロファイル フォルダーからコピーされたリソースをまったく同じ出力クラスパス構造に表示する方法です。つまり、 /production 、 /development 、または /staging はありません。 /env だけです。
それらを別々に入れることができることは知っていますが、共有されているもの(提示された構造の構成など)がある場合、どうすればそれを含めることができますか?