0

私は既存のプロジェクト(レガシー)をmavenに移動します。それは次の構造を持っています:maven-resources-plugin + profiles

ParentProject 
- EARModule 
    - src 
    - target 
    - pom.xml (ear) 
- WARModule 
    - src 
    - main 
     - java 
     - (java packages and classes) 
     - resources 
     - dev 
      - index.jsp 
     - prod 
      - index.jsp 
     - webapp 
     - views 
      - index.jsp (original) 
     - WEB-INF 
    - target 
    - pom.xml (war) 
- pom.xml (parent) 

私は2つの異なるプロファイルを持つつもりです:生産と開発。プロダクションプロファイルでは、/ WARModule/src/main/resources/プロダクト /index.jspをviews/warディレクトリに組み込む必要があります。開発プロファイルでは、/ WARModule/src/main/resources/dev /index.jspをviews/warディレクトリにコピーしてください。

私はwar pom.xmlで設定しているmaven-resources-pluginを利用しようとしています。

<properties> 
    <prodResourcesDir>${basedir}/src/main/resources/prod</prodResourcesDir> 
    <devResourcesDir>${basedir}/src/main/resources/dev</devResourcesDir> 
    <viewsDir>${basedir}/target/WARModule/views</viewsDir> 
</properties> 

<profiles> 
    <profile> 
     <id>development</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-resources-plugin</artifactId> 
        <version>2.6</version> 
        <executions> 
         <execution> 
          <id>copy_development_index.jsp</id> 
          <phase>prepare-package</phase> 
          <goals> 
           <goal>copy-resources</goal> 
          </goals> 
          <configuration> 
           <outputDirectory>${viewsDir}</outputDirectory> 
           <resources> 
            <resource> 
             <directory>${devResourcesDir}</directory> 
             <filtering>true</filtering> 
             <includes> 
              <include>index.jsp</include> 
             </includes> 
            </resource> 
           </resources> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
    <profile> 
     <id>production</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-resources-plugin</artifactId> 
        <version>2.6</version> 
        <executions> 
         <execution> 
          <id>copy_production_index.jsp</id> 
          <phase>prepare-package</phase> 
          <goals> 
           <goal>copy-resources</goal> 
          </goals> 
          <configuration> 
           <outputDirectory>${viewsDir}</outputDirectory> 
           <resources> 
            <resource> 
             <directory>${prodResourcesDir}</directory> 
             <includes> 
              <include>index.jsp</include> 
             </includes> 
            </resource> 
           </resources> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 

上記のとおり、私は2つのプロファイル(制作と開発)を作成し、それぞれの下にリソースプラグインを設定しています。

mvn install -P any_of_the_profilesを実行すると、index.jspが指定された宛先にコピーされません。代わりに、私は元のバージョンを取得します。誰も私がこれを整理するのを助けることができる?ログトレースの下

$ mvn -P production install 
[INFO] Scanning for projects... 
[INFO] ------------------------------------------------------------------------ 
[INFO] Reactor Build Order: 
[INFO] 
[INFO] ParentProject 
[INFO] WebModule Maven Webapp 
[INFO] EARModule 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building ParentProject 0.0.2-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ ParentProject --- 
[INFO] Installing D:\workspace\mvn_projects\ParentProject\pom.xml to C:\Users\a048148\.m2\repository\my\org\ParentProject\0.0.2-SNAPSHOT\ParentProject-0.0.2-SNAPSHOT.pom 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building WebModule Maven Webapp 0.0.2-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ WebModule --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 10 resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ WebModule --- 
[INFO] Changes detected - recompiling the module! 
[INFO] Compilation messages... 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ WebModule --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] skip non existing resourceDirectory D:\workspace\mvn_projects\ParentProject\WebModule\src\test\resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ WebModule --- 
[INFO] No sources to compile 
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ WebModule --- 
[INFO] No tests to run. 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:copy-resources (copy_index.jsp) @ WebModule --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 1 resource 
[INFO] 
[INFO] --- maven-war-plugin:2.2:war (default-war) @ WebModule --- 
[INFO] Packaging webapp 
[INFO] Assembling webapp [WebModule] in [D:\workspace\mvn_projects\ParentProject\WebModule\target\WebModule] 
[INFO] Processing war project 
[INFO] Copying webapp resources [D:\workspace\mvn_projects\ParentProject\WebModule\src\main\webapp] 
[INFO] Webapp assembled in [3122 msecs] 
[INFO] Building war: D:\workspace\mvn_projects\ParentProject\WebModule\target\WebModule.war 
[INFO] WEB-INF\web.xml already added, skipping 
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ WebModule --- 
[INFO] Installing D:\workspace\mvn_projects\ParentProject\WebModule\target\WebModule.war to C:\Users\a048148\.m2\repository\my\org\WebModule\0.0.2-SNAPSHOT\WebModule-0.0.2-SNAPSHOT.war 
[INFO] Installing D:\workspace\mvn_projects\ParentProject\WebModule\pom.xml to C:\Users\a048148\.m2\repository\my\org\WebModule\0.0.2-SNAPSHOT\WebModule-0.0.2-SNAPSHOT.pom 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building EARModule 0.0.1-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-ear-plugin:2.8:generate-application-xml (default-generate-application-xml) @ EARModule --- 
[INFO] Generating application.xml 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ EARModule --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 0 resource 
[INFO] 
[INFO] --- maven-ear-plugin:2.8:ear (default-ear) @ EARModule --- 
[INFO] Copying artifact [war:com.bbh:WebModule:0.0.1-SNAPSHOT] to [WebModule-0.0.1-SNAPSHOT.war] 
[INFO] Could not find manifest file: D:\workspace\mvn_projects\ParentProject\EARModule\target\ParentProject\META-INF\MANIFEST.MF - Generating one 
[INFO] Building jar: D:\workspace\mvn_projects\ParentProject\EARModule\target\ParentProject.ear 
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ EARModule --- 
[INFO] Installing D:\workspace\mvn_projects\ParentProject\EARModule\target\ParentProject.ear to C:\Users\a048148\.m2\repository\my\org\EARModule\0.0.1-SNAPSHOT\EARModule-0.0.1-SNAPSHOT.ear 
[INFO] Installing D:\workspace\mvn_projects\ParentProject\EARModule\pom.xml to C:\Users\a048148\.m2\repository\my\org\EARModule\0.0.1-SNAPSHOT\EARModule-0.0.1-SNAPSHOT.pom 
[INFO] ------------------------------------------------------------------------ 
[INFO] Reactor Summary: 
[INFO] 
[INFO] ParentProject .......................................... SUCCESS [ 0.229 s] 
[INFO] WebModule Maven Webapp ................................ SUCCESS [ 19.470 s] 
[INFO] EARModule ............................................. SUCCESS [ 3.049 s] 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 22.892 s 
[INFO] Finished at: 2016-12-12T15:18:14+01:00 
[INFO] Final Memory: 39M/247M 
[INFO] ------------------------------------------------------------------------ 

答えて

0

私はMavenの資源・プラグインがリソース、ないWebリソース(JSP)のためだけで正常に動作することを考え出すことになりました。

私は自分のアプローチをmaven-war-plugin filtering featureに切り替え、宛先パスを指定しました。このように、私のWebのpom.xml内のプロファイルのセクションは次のように終わった:

<profiles> 
    <profile> 
     <id>development</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-war-plugin</artifactId> 
        <version>3.0.0</version> 
        <configuration> 
         <webResources> 
          <resource> 
           <directory>${devResourcesDir}</directory> 
           <filtering>true</filtering> 
           <targetPath>views</targetPath> <!-- target/WebModule/ subdirectory --> 
           <include>index.jsp</include> 
          </resource> 
         </webResources> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
    <profile> 
     <id>production</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-war-plugin</artifactId> 
        <version>3.0.0</version> 
        <configuration> 
         <webResources> 
          <resource> 
           <directory>${prodResourcesDir}</directory> 
           <filtering>true</filtering> 
           <targetPath>views</targetPath> <!-- target/WebModule/ subdirectory --> 
           <include>index.jsp</include> 
          </resource> 
         </webResources> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 

これはターゲット/ WebModule /ビューに指定されたリソースディレクトリからのindex.jspを移動するためのmaven-戦争 - プラグインに指示しますディレクトリ。戦争をパッケージ化する直前に戦争のプラグインによってすべて完了されるので、ライフサイクル段階を指定する必要はありません。

関連する問題