maven的lifecycle和plugin 的区别

Maven的Lifecycle(生命周期)和Plugin(插件)是Maven构建工具的两个关键概念,用于管理和执行项目的构建过程。

Lifecycle(生命周期)是Maven定义的一系列阶段(phase)的集合,代表了项目构建的不同阶段。每个阶段都有一个特定的目标(goal),通过执行这些目标,可以完成相应阶段的构建任务。常见的生命周期包括cleancompiletestpackageinstalldeploy等。通过执行命令mvn <phase>,可以触发相应阶段的构建任务。Lifecycle的定义是在POM(Project Object Model)文件中完成的,它规定了项目的构建顺序和执行过程。

Plugin(插件)是Maven中的可扩展组件,用于扩展和定制构建过程。插件可以提供额外的功能,比如编译源代码、运行单元测试、生成文档等。Maven自带了一些常用插件,例如maven-compiler-plugin用于编译Java源代码,maven-surefire-plugin用于运行单元测试。除了使用内置插件,开发人员还可以编写自定义插件来满足特定的构建需求。插件的配置也是在POM文件中完成的,通过在POM中声明插件及其配置信息,Maven可以根据需要调用相应的插件执行任务。

简而言之,Lifecycle(生命周期)是Maven定义的一系列构建阶段的集合,定义了项目构建的顺序和过程;而Plugin(插件)是可扩展的组件,用于在每个构建阶段执行具体的任务。通过Lifecycle和Plugin的结合使用,Maven可以自动化执行项目的构建过程,并且提供了灵活性和可扩展性,使开发人员能够根据需要定制构建行为。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
maven2的插件,用于在eclipse下进行maven2的快速配置 打开eclipse .选择菜单 window ->preferences ; 在新打开的对话框的左边的一列会看到一个名为Maven2的选项。鼠标单击,然后点击右边的Local Repository Folder 那一栏的Browse按扭。然后定位到你本地的maven repository 目录。就是前面运行脚本生成的哪个目录。比如我的 是C:\Documents and Settings\er\.m2\repository 点ok,配置完成。 接下来就是测试一下maven能不能在eclipse里运行。新建一个项目 名为test. File->new ->project,选择java project 点next.然后在Project name 一栏输入test 然后我们回在下边看到有一个 JRE 的表。这个是指定你的项目所使用的JDK的版本。因为EJB3只能在jdk1.5上运行 所以在这里必须选择1.5.具体配置方法为:点击Configure JREs...弹出一个对话框。这个对话框是配制jdk的。它会 有一个已经定义的jdk.。就是现在系统所使用的那个。如果此jdk的版本不是jdk1.5你就得添加一个。 点add按扭 在jre name一栏起个名字,比如 my-jdKl1.5,然后在 jre home directory一栏选择你的jdk1。5的安装路径,如果正确 在jre system libraries 下边回看到有很多瓶子。点ok,然后把 “对勾”从你原来哪个改到my-jdk1.5上就可以了。然后再 点ok.. 然后点finish.)右键点击test new class 新建一个类。包为org.main 类名为Sample .添加一些测试代码,最后这个类的代码如下: package org.main;public class Sample { public String something(){ return "aaaaaaaa"; }} 右键点击test new ->junit test case 回弹出一个对话框,问你是否要把junit .jar 加入到这个项目中。这回我们选NO. (因为这回我们是通过maven 来构建项目。导入类库的操作由Maven来控制。)在新弹出的窗口中它会让你输入包 名和类名。包名:org.test 类名: testSample 然后点确定。然后添加一些代码,最后我们testSample的代码如下: package org.test;import org.main.Sample;import junit.framework.TestCase;public class testSample extends TestCase { public void testSample(){ Sample sa = new Sample(); String a = sa.something(); this.assertNotNull(a); }}此时会看到 有很多错误,这是因为没有导入junit.jar这个包。在项目test上点右键选择 Maven2 ->enable 在Group Id 一栏添如入test,然后点finish. 然后再在项目test上点右键选择 Maven2 ->add dependency 在新对话框里的Query输入junit 然后在下面的Search Results 里 展开junit 选择 "3.8.1 - junit-3.8.1.jar ............"这一项。然后点ok. 然后等一会。我们会看到错误没有了。然后在 左边的Package Explorer里展开Maben2 Dependencies 回 看到有一个junit.jar的瓶子。junit.jar这个库包已经被加入这个项目了。所以没有错误了。 然后打开testSample.java这个类。然后在outline窗口中把 类testSample展开,然后选择testSample()点 右键 然后选择run as ->junit test 然后回看到这个方法运行了。 这里有个小插曲, public void testSample(){ Sample sa = new Sample(); String a = sa.something(); this.assertNotNull(a); } 这个是这个类的一个方法,不是它的构造函数。如果是以下形式 public testSample(){ Sample sa = new Sample(); String a = sa.something(); this.assertNotNull(a); } 就是这个类的构造函数。 可以看出构造函数与方法的区别为构造函数是 public testSample() 而方法为public void testSample()。 构造函数不指定返回类型。而且它必须与类同名。 在outLine 窗口里构造函数上边有个“C”的小标记。我们把testSample 这个类改为 package org.test;import org.main.Sample;import junit.framework.TestCase;public class testSample extends TestCase { public void testSample(){ Sample sa = new Sample(); String a = sa.something(); this.assertNotNull(a); } public testSample(){ System.out.print("testSample"); }} 然后再在 outLine 里选择testSample() (注意选那个没有"C"标记的那个,然后点右键,run as junit test) 然后我们回看到程序运行了,而且在console里打印出 testSample,从中可以看到,你只要用到这个类、 它肯定要调用构造函数创建它自己,然后才执行你调用的方法。接着我们关掉junit窗口(在eclipse 左边那一列点 junit 旁边哪个X )回到Package Explorer。然后右键点 pom.xml 选择run as ->Maven2 build 在弹出的对话框选者Goals...按纽,Lifecycle Phases 展开选package 然后点ok.然后点run.等一会。 如果如下类似文字就好了:[INFO] Total time: 206 second [INFO] Finished at: Sun Mar 26 12:20:01 CST 2006 [INFO] Memory 1M/6M然后我们直接通过文件夹找到这个项目的位置。比如我的是 D:\Taylorspace\test\target在这个文件夹下我们会 看到一个名为test-0.0.1.jar的文件。总结: 从中可以看到Maven的两个作用 1。管理library 包。在开发过程中我们回遇到这么一种情况,比如你建了 两个项目,一个为 project1 一个为project2 而这两个项目都用到一个jar 包。比如junit.jar 如果两个项目各自导入 junit.jar 不仅对磁盘空间是一个浪费,而且也不好管理。而通过Maven 我们可以看到它把是这么做的。当你的项目 需要一个包时通过 add dependancy.把它加进来以后Maven 就会在你在eclipse里指定的哪个Local Repository Folder 目录下找这个jar包。比如我设的目录是C:\Documents and Settings\er\.m2\repository ,如果找到,就在项目的构建 路径加上这个jar.如果在这个目录找不到此jar包。它回从网上下载这个jar包,放到此目录。以后再用到此jar就不用下载 了。 2。就是项目部署。就是我们在上例中 选择pom.xml 然后选择运行,Goal 设成package,然后我们发现生成一个 test-0.0.1.jar的文件。
### 回答1: Maven只有一个生命周期。Maven生命周期是一系列的阶段,用于控制项目构建过程中的不同步骤。Maven的生命周期分为三个主要阶段:清理阶段、默认阶段和站点阶段。 清理阶段主要用于清理先前构建生成的文件,以确保项目从一个干净的状态开始构建。默认阶段包括编译、测试、打包、集成测试、验证、部署和安装等步骤。这些步骤会按照一定的顺序依次执行,以完成项目构建。最后,站点阶段用于生成项目站点的文档和报告,以提供项目的相关信息和统计数据。 每个阶段又由一系列的插件目标组成,这些目标会在相应的阶段中执行。通过配置不同的插件目标,我们可以定制和扩展Maven的功能。例如,我们可以使用maven-compiler-plugin插件来指定项目的编译器版本和源代码目录。同样的,我们可以使用maven-surefire-plugin插件来执行项目的单元测试,并生成相应的测试报告。 总之,虽然Maven只有一个生命周期,但通过配置不同的插件目标,我们可以在构建过程中灵活地定制和扩展Maven的功能,以满足项目的具体需求。 ### 回答2: Maven 是一个开源的项目管理工具,使用它可以帮助我们规范项目的构建、打包、测试和部署等过程。而 Maven 中的 lifecycle(生命周期)是 Maven 提供的一种软件构建模型,用于定义和管理项目的整个构建过程。 Maven 的生命周期可以被分为三个主要阶段:clean(清理)、build(构建)和site(生成站点文档)。在每个阶段中,Maven 会有一系列预定义的插件目标被执行。每个插件目标都可以完成特定的构建任务,比如编译代码、运行测试、打包、安装或部署项目等。 Maven 的生命周期是相互依赖的,当执行一个生命周期阶段时,通常会顺序执行它前面所有的生命周期阶段,直到达到指定的生命周期阶段。例如,执行 "mvn clean" 会依次执行 clean 生命周期的所有阶段,包括 pre-clean、clean 和 post-clean。 值得注意的是,Maven 不仅仅只有一个生命周期,还有其他附加的生命周期。例如,Maven 还提供了用于发布和部署项目的 deploy 生命周期以及用于生成站点文档的 site 生命周期。这些额外的生命周期是通过在 Maven POM 文件中配置插件来实现的。 总结来说,Maven 的生命周期是一个包含多个阶段的构建模型,它定义了项目的构建过程中应该执行的任务。这些任务可以通过配置 Maven POM 文件中的插件来实现。虽然 Maven 有多个生命周期,但其中最主要的是 clean、build 和 site 三个生命周期。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王摇摆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值