多模組下的maven jetty外掛配置
1. 首先你要學會單模組的jetty外掛配置.
網上都是老的
maven-jetty-pluginhttp://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>
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>