6

私はmavenを初めて使用し、プロファイルを使用してさまざまな環境のwarファイルを構築するためにpom.xmlを作成しようとしています

だから私はビルドターゲットを作成しました

<build>
<finalName>myacct_okc</finalName>
<resources>
  <resource>
    <directory>src/main/java</directory>
    <excludes>
      <exclude>**/*.java</exclude>
    </excludes>
  </resource>
  <resource>
    <directory>src/main/resources</directory>
  </resource>
  <resource>
    <directory>config/${environment}</directory>
  </resource>
 </resources>
</build>

次に、各環境のプロファイルを作成します

<profiles>
 <profile>
  <id>local</id>
  <activation>
    <activeByDefault>false</activeByDefault>
  </activation>
  <properties>
    <environment>local</environment>
  </properties>
</profile>
<profile>
  <id>jboss</id>
  <properties>
    <environment>jboss</environment>
  </properties>
</profile>
<profile>
  <id>dev</id>
  <properties>
    <environment>dev</environment>
  </properties>
</profile>

そして、各envの構成フォルダーを作成します

project root
|-- src
|   |-- main
|   |   |-- java
|   |   |-- resources
|   |   |   |-- config.xml
|   |   |   +-- config.properties
|   |   |-- webapp
|   |   |   |-- META-INF
|   |   |   |   +--context.xml
|   |   |-- config
|   |   |   |-- local
|   |   |   |   |--config.properties
|   |   |   |   +--config.xml
|   |   |   |-- jboss
|   |   |   |   |--config.properties
|   |   |   |   +--config.xml
|   |   |   +-- dev
|   |   |   |   |--config.properties
|   |   |   |   +--config.xml
+--pom.xml

jboss などの任意のプロファイルでこの pom.xml を実行すると、config/jboss フォルダーからのファイルがコピーされません (つまり、src/main/resources 内のファイルが置き換えられません)。

Mavenビルドでデバッグを有効にすると、コピーが実行されていることがわかります。

 [DEBUG] resource with targetPath null
 directory C:\Projects\workspace\myaccount_build_4\myaccount\config\jboss
 excludes []
 includes []
 [DEBUG] ignoreDelta true
 [INFO] Copying 2 resources
 [DEBUG] file config.xml has a filtered file extension
 [DEBUG] copy C:\Projects\workspace\myaccount_build_4\myaccount\config\jboss\config.xml to C:\Projects\workspace\myaccount_build_4\myaccount\target\classes\config.xml
 [DEBUG] file config.properties has a filtered file extension
 [DEBUG] copy C:\Projects\workspace\myaccount_build_4\myaccount\config\jboss\META-INF\config.properties to    C:\Projects\workspace\myaccount_build_4\myaccount\target\classes\META-INF\config.properties

しかし、それはファイルを置き換えていません。ファイルは src/main/resources と同じです。

Maven のバージョンは 3.0.4 です

誰かが私が間違っていることを手伝ってくれますか?

私はこの質問を見てきました。これは解決策を提供しますが、ファイルを除外してからコピーするのではなく、ファイルを上書きしたいと考えています。

4

2 に答える 2

6

追加したらうまくいきましたfiltering= true

 <build>
<finalName>myacct_okc</finalName>
<resources>
 <resource>
  <directory>src/main/java</directory>
   <excludes>
    <exclude>**/*.java</exclude>
  </excludes>
 </resource>
 <resource>
   <filtering>true</filtering>
  <directory>src/main/resources</directory>
 </resource>
  <resource>
   <filtering>true</filtering>
    <directory>config/${environment}</directory>
  </resource>
  </resources>
 </build>
于 2013-05-21T13:29:24.743 に答える