Maven自定义绑定插件

来源:互联网 发布:debian和ubuntu关系 编辑:程序博客网 时间:2024/05/29 03:05

最近学生经常说m2eclipse中自定义绑定插件失败,先整理一个流程作为大家参考:

目标:在执行mvn test的时候,对于一个web项目,自动启动jetty

 

1,首先找到jetty插件,查看其提供的插件目标:

找到jetty插件地址:http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin

找到jettygroupIdartifactId

 


运行mvn help:describe命令来查看插件提供的目标:

mvn help:describe -Dplugin=org.mortbay.jetty:jetty-maven-plugin

 

 

 

可以看到,jetty有很多的插件目标,其中runstart目标都可以用来启动jetty服务器;而说明也很清楚,如果想把jetty绑定到execution中,适合用jetty:start

 

2,我们查看test命令的生命周期:

validate

initialize:初始化工作

generate-sources

process-sources: 复制并处理资源文件,至目标目录,准备打包。

compile: 编译项目的源代码。

process-classes

generate-test-sources

process-test-sources:复制并处理资源文件,至目标测试目录。

test-compile:编译测试源代码。

process-test-classes:在测试前的工作

test:使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。

 

可以看到,当执行mvn test的时候,也就执行这么多阶段;那么我们适合把启动jetty放在process-test-classes阶段;

 

 

 

3,打开一个web项目pom.xml文件:

<build>...<plugin><groupId>org.mortbay.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><executions><execution><phase>process-test-classes</phase><goals><goal>start</goal></goals></execution></executions></plugin></build>

但是我们发现,eclipse会报错,

 

这是m2eclipse插件本身的问题,m2eclipse会去检查每个maven插件的生命周期,而有些插件并没有定义生命周期,我们只需要配置m2eclipse去忽略检查这些插件的生命周期即可;

打开preferences

 

在任意位置新建一个XML文件,比如在e:\workspance\dev2下创建一个lf.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?><lifecycleMappingMetadata>  <pluginExecutions>       <pluginExecution>      <pluginExecutionFilter>        <groupId>org.mortbay.jetty</groupId>        <artifactId>jetty-maven-plugin</artifactId>        <goals>          <goal>start</goal>        </goals>        <versionRange>[0.0,)</versionRange>      </pluginExecutionFilter>      <action>        <ignore />      </action>    </pluginExecution>     </pluginExecutions></lifecycleMappingMetadata>

lifecycle mappings中点browse,选中这个lf.xml文件,并且点击

  

然后点击项目-maven-update project;可以看到错误消失;

  

4,执行test

执行mvn test,可以看到输出:

 

Jetty服务器已经在test命令中启动完成;


0 0
原创粉丝点击