1. 程式人生 > >多模組下的maven jetty外掛配置

多模組下的maven jetty外掛配置

1. 首先你要學會單模組的jetty外掛配置.

        網上都是老的

   maven-jetty-plugin
      http://www.cnblogs.com/fnng/archive/2011/12/16/2290587.html 

   但是有些配置不一樣了.

2. 後面就是配置多模組的jetty外掛了.

       2.1 直接在parent的pom裡新增jetty配置,執行mvn jetty:run 的時候會報無法找到 jetty的錯誤

[ERROR] No plugin found for prefix 'jetty' in the current project and in the plu
gin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repo
sitories [local (C:\Users\admin\.m2\repository), public (http://maven. .c
om/content/groups/public/), central (http://repo.maven.apache.org/maven2)] -> [H
elp 1]

   2.2 經過搜尋,搜尋到了stackOverflow的一個帖子 

http://stackoverflow.com/questions/3636493/multi-module-maven-project-and-jettyrun

      2.2.1  要搞一個profile

      2.2.2 一定要放在war 模組的pom裡.

      2.2.3 刪除了stackOverFlow裡的webAppSourceDirectory ,因為一旦配了就會導致  mybatis的同一個xml被載入兩次,同一個class有兩個地方的衝突

      2.2.4   增加了web.xml的指定 ,因為這個web.xml有佔位符需要被替換. 預設的src/main/webApp裡的有佔位符會導致服務不可用.                  <descriptor>${project.basedir}/target\daijia_finance-1.0.3\WEB-INF/web.xml</descriptor> 

      2.2.5 先到 parent 上
mvn clean install
     2.2.6 cd 到  war 所在 目錄下 mvn jetty:run
          再parent 上跑,會在第一個jar上就跑了 jetty.

詳細如下:

<profile>

                    <id>jetty-run</id>

                    <activation>

                           <activeByDefault>true</activeByDefault>

                    </activation>

                    <properties>

                           <profile.name>dev</profile.name>

                    </properties>

                    <build>

     <plugins>

       <plugin>

          <groupId>org.eclipse.jetty</groupId>

               <artifactId>jetty-maven-plugin</artifactId>

               <version>9.0.0.M5</version>

         <configuration>

                     <!--      <webAppSourceDirectory>target\daijia_finance-1.0.3\</webAppSourceDirectory>

                    不能包含WEB-INF\${project.basedir}/  這句不能配,一旦配了就會導致 class 衝突的問題. mybatis的同一個xml被載入兩次. 一個是maven 庫, 一個是webAppSourceDirectory下的lib路徑下  -->

                    <webAppConfig> 

                                    <contextPath>/</contextPath>

                                     <descriptor>${project.basedir}/target\daijia_finance-1.0.3\WEB-INF/web.xml</descriptor>

                                    <!-- <extraClasspath>target/daijia_finance-1.0.3\WEB-INF\classes;target\daijia_finance-1.0.3\WEB-INF\lib</extraClasspath>

                                       <baseResourceimplementation="org.eclipse.jetty.util.resource.ResourceCollection">

<resourcesAsCSV>${project.basedir}/target\daijia_finance-1.0.3\</resourcesAsCSV></baseResource> -->

           </webAppConfig>

                    <!--<classesDirectory>  D:\svn_project\finace\daijia_finance\target\daijia_finance-1.0.3\WEB-INF\classes</classesDirectory>-->

         </configuration>

         <executions>

           <execution>

             <id>jetty-run</id>

             <phase>prepare-package</phase>

<!-- process-classes 生命週期即可 mvn clean prepare-package -Pjetty-run -->

             <goals>

               <goal>run</goal>

             </goals>

           </execution>

         </executions>

       </plugin>

     </plugins>

   </build>

             </profile>