Maven自定义绑定插件

原创 2015年07月09日 11:09:27

最近学生经常说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命令中启动完成;


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

HighCharts 图表插件 自定义绑定 时间轴数据

HighCharts 图表插件 自定义绑定 时间轴数据      HighCharts 图表插件 自定义绑定 时间轴数据,解决时间轴自动显示数据与实际绑定数据时间不对应问题!      学习示例如...

Maven之——插件目标及绑定

7.3                  插件目标(PluginGoal)     &#...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

maven surefire 插件源码修改,自定义输出格式

一.背景在使用maven surefire插件命令:mvn test -Dtest=测试类进行测试时,对于stdout信息进行识别能迅速的发现问题,当你某个suite类聚合了几千个用例时,失败数往往有...

自定义Maven插件

最近又开始使用maven

基于ProGuard-Maven-Plugin的自定义代码混淆插件

大家可能都会碰到一些代码比较敏感的项目场景,这个时候代码被反编译看到就不好了,这个时候就需要代码混淆插件来对代码进行混淆了。 基于Maven的项目一般会去考虑使用proguard-maven-plug...

Maven自定义打包插件Assembly Plugin简单使用

使用Assembly Plugin实现自定义打包1.修改pom.xml maven-assembly-plug
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)