maven插件编写与调试

    maven常见的插件有compile插件,deploy插件,jetty插件等等,这些插件有的是主动去执行,有的是在maven特定的生命周期中执行。我们需要在这些生命周期自动或者手动去执行一些嵌入的功能,比如生成辅助代码,一些环境的配置之类的,最好就是用插件去完成。

validate
compile 
test 
package
integration-test 
verify 
install
deploy
    1、新建一个maven的simple project。

    2、在maven的pom中加入一个maven-plugin-api依赖以及maven-plugin-plugin插件,并将对应的package类型改为maven-plugin

 <packaging>maven-plugin</packaging>
...
<dependencies>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-utils</artifactId>
      <version>1.1</version>
    </dependency>

  </dependencies>
...
<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-plugin-plugin</artifactId>
        <version>3.0</version>
        <executions>
        </executions>
        <configuration>
          <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
        </configuration>
</plugin>
3、编写一个类继承AbstractMojo并且实现execute方法,并在类注释中用@goal标注插件执行的单元

import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;

/**
 * @goal hello
 * @phase process-sources
 */
public class MojoExample extends AbstractMojo {</span>

    public void execute() throws MojoExecutionException, MojoFailureException {
        getLog().info("Hello world~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    }
    
}
打包后,用mvn install到本地仓库,然后在项目中就可以引入对应的plugin
   <plugin>
        <groupId>com.xxx</groupId>
        <artifactId>plugintest</artifactId>
      </plugin>
执行:mvn groupID:artifactID:version:goal 

    4、最后说一下调试吧,我用的是intellij,在intellij中开发这个项目的时候,将插件加入某个项目作为其module,然后在pom文件中引入插件,并且在intellij的Terminal中用

mvnDebug groupID:artifactID:version:goal 来启动插件,并且在插件的execute方法中打上断点。这个是maven的远程调试,我们必须在intelli中用remote来连接过去。新增一个执行,然后端口设置为8000,然后启动即可。

    github上有很多现成的插件的源码,随便找一个去研究研究,模仿一下就行了,最重要的是明白自己需要做什么。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1.1、课程的背景 该课程是北风品牌课程-《BF-TECH J2EE软件工程师就业课程》 第五阶段:项目实战一、开发基于SSH2+Maven+JeasyUI+MySQL技术的 【易买网电子商务交易平台】课程。 jQuery EasyUI简称jeasyui,也就叫easyui,是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签。现在几乎只要软件开发项目,越来越多的公司采用富客户端技术,由于extjs过于宠大,及学习成本较高,更多的企业选择采用小巧而易用的jeasyui作为前端展示框架。 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供 Ant 所缺少的高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目,而使用 Ant 则需要十几行。事实上,由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。 1.2、课程内容简介 由于富客户端技术进一步扩展浏览器功能,使之提供更加高效和友好的用户接口,越来越多的企业和开发人员选择使用富客户端技术构建商业应用,本课程主要是介绍了解最流行的富客户端框架jquery - easyUI API及熟悉掌握其高级特性,并结合SSH2框架与Maven实现富户端商业应用的全部开发过程. 2.2、课程学习目标(我们提供什么?) 目标一. 了解Maven的环境配置以及如何在项目中进行运用管理 目标二. 了解java框架技术,熟悉SSH框架搭建的全过程 目标三. 可以让学员迅速掌握JEasyUI的API及使用技巧 目标四. 可以让学员熟练使用JEasyUI快速构通富客户端的界面及与后台服务器交互的注意事项与技巧 目标五. 通过前台和后台的分离,让学生即掌握JSP使用技巧又熟练JEasyUI的使用 目标六. 通过完整的项目实战,全面的演示了JEasyui+SSH2+Maven+MySQL技术的综合使用步骤、过程、注意事项及技巧 目标七. 通过本课程的学习,为学员以后开发使用JEasyui与后台Java框架技术结合的大型Java项目提供了完整示范,奠定基础 2.3、课程特色 特点一、讲师具有一线的实战经验与丰富的教学经验,课程即讲解案例实现思路、理论与原理又讲解实战技巧与注意事项,即照顾到基顾学员,又照顾到有一定实战经验想要提高自己的学员。 特点二、在每节开始之前先简单回顾上一节所讲的主要内容,并对本节所讲的内容先进行概述,讲解概念、技术要点,设计实现思路等内容,最后总结本次课程的要掌握的要点,讲师授课采用先理论,后实战的方式,由浅入深,符合人们接受知识的自然规律。 特点三、学习的过程中学员要理论和实践相结合,讲过的代码学员自行完成修改和调试,以巩固加深学习效果 2.4、课程亮点 亮点一、Structs2.x+Spring3.x+Hibernate4.x+ JEasyui1.3.4+Maven3 各框架jar包等采用的均是目前为止最新的版本,讲解时使用的这些jar及框架的最新技术,如此组合在国内尚属首部、技术的前沿性可以保证让您的技术在二到三年内不会落伍. 亮点二、理论与实战相结合,由浅入深。即照顾到基础学员,又照顾到有一定经验的学员,讲解过程中留有学生思考的时间. 亮点三、课程绝大多数代码均是一行一行手工敲入,手把手一步步带领学员从入门到精通. 亮点四、整个课程虽项目不大,但整个项目基本上涉及到JEasyui与后台交互的方方面面,而且讲师框架全部按大的项目架构去搭建的,学员拿到该项目后稍加改造就可以用到自己的项目,实用性超强.
开发工具在软件开发生命周期中扮演着至关重要的角色,它们旨在简化和加速从概念设计到产品部署的各个环节。以下是开发工具的主要作用: 代码编写与编辑: 提供集成开发环境(IDE),如Visual Studio、Eclipse、Android Studio和Sublime Text等,这些工具集成了文本编辑器,支持语法高亮、自动补全、代码片段管理和版本控制等功能,有助于开发者高效编写和维护代码。 项目管理: 支持项目创建、组织、构建自动化以及依赖管理,确保不同模块和组件之间的协调一致。 编译与构建: 包括编译器、构建工具(如Make、Gradle、Maven)等,用于将源代码转换为可执行文件或库,并进行资源打包、优化等处理。 调试与测试: 集成调试器允许开发者逐行执行代码,设置断点、查看变量值、跟踪调用堆栈等,帮助定位并修复代码中的错误。 测试框架和工具则协助开发者编写和运行单元测试、集成测试及性能测试,确保软件质量。 版本控制与协作: 通过集成Git、SVN等版本控制系统,支持团队成员间的代码共享、分支管理、合并请求和冲突解决。 可视化设计与原型制作: 对于UI/UX设计,有界面设计工具,如Sketch、Adobe XD,可以帮助设计师快速构建应用程序界面模型,并生成规范的设计稿供开发人员参考实现。 跨平台支持: 跨平台开发工具如Xamarin、React Native和Flutter,让开发者使用一种语言或框架编写可以在多个操作系统上运行的应用程序。 文档编写与API管理: 文档生成工具可以自动生成代码注释文档,便于团队内外理解和使用项目代码。 API管理工具则方便开发者创建、测试、发布和维护API接口。 持续集成与持续部署(CI/CD): Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM(对象关系映射)工具简化了数据操作和持久化层的开发工作。 总之,开发工具极大地提升了软件工程师的工作效率,保证了开发过程中的准确性与一致性,同时也促进了团队合作,使得软件开发更系统化、规范化和工业化。
1.GsonFormat(GsonFormat) 快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应Java Bean的过程。 使用方法:快捷键Alt+S也可以使用Alt+Insert选择GsonFormat 2.Android ButterKnife Zelezny 配合ButterKnife实现注解,从此不用写findViewById,想着就爽啊。在Activity,Fragment,Adapter中选中布局xml的资源id自动生成butterknife注解。 使用方法:Ctrl+Shift+B选择图上所示选项 3.Android Code Generator 根据布局文件快速生成对应的Activity,Fragment,Adapter,Menu。 4.Android Parcelable code generator JavaBean序列化,快速实现Parcelable接口。 5.Android Methods Count 显示依赖库中得方法数 6.Lifecycle Sorter 可以根据Activity或者fragment的生命周期对其生命周期方法位置进行先后排序,快捷键Ctrl + alt + K 7.CodeGlance 在右边可以预览代码,实现快速定位 8.findBugs-IDEA 查找bug的插件,Android Studio也提供了代码审查的功能(Analyze-Inspect Code…) 9.ADB WIFI 使用wifi无线调试你的app,无需root权限 也可参考以下文章: Android wifi无线调试App新玩法ADB WIFI 10.AndroidPixelDimenGenerator Android Studio自动生成dimen.xml文件插件 11.JsonOnlineViewer 在Android Studio中请求、调试接口 12.Android Styler 根据xml自动生成style代码的插件 13.Android Drawable Importer 这是一个非常强大的图片导入插件。它导入Android图标与Material图标的Drawable ,批量导入Drawable ,多源导入Drawable(即导入某张图片各种dpi对应的图片) 14.SelectorChapek for Android 通过资源文件命名自动生成Selector文件。 15.GenerateSerialVersionUID 实现Serializable序列化bean 16.genymotion 速度较快的android模拟器 17.LeakCanary 帮助你在开发阶段方便的检测出内存泄露的问题,使用起来更简单方便。 可以参考以下文章: LeakCanary 中文使用说明 18.Android Postfix Completion 可根据后缀快速完成代码,这个属于拓展吧,系统已经有这些功能,如sout、notnull等,这个插件在原有的基础上增添了一些新的功能,我更想做的是通过原作者的代码自己定制功能,那就更爽了 19.Android Holo Colors Generator 通过自定义Holo主题颜色生成对应的Drawable和布局文件 20.dagger-intellij-plugin dagger可视化辅助工具 21.GradleDependenciesHelperPlugin maven gradle 依赖支持自动补全 22.RemoveButterKnife ButterKnife这个第三方库每次更新之后,绑定view的注解都会改变,从bind,到inject,再到bindview,搞得很多人都不敢升级,一旦升级,就会有巨量的代码需要手动修改,非常痛苦 当我们有一些非常棒的代码需要拿到其他项目使用,但是我们发现,那个项目对第三方库的使用是有限制的,我们不能使用butterknife,这时候,我们又得从注解改回findviewbyid 针对上面的两种情况,如果view比较少还好说,如果有几十个view,那么我们一个个的手动删除注解,写findviewbyid语句,简直是一场噩梦(别问我为什么知道这是噩梦) 所以,这种有规律又重复简单的工作为什么不能用一个插件来实现呢?于是RemoveButterKnife的想法就出现了。 具体介绍 23.AndroidProguardPlugin 一键生成项目混淆代码插件,值得你安装~(不过目前可能有些第三方项目的混淆还未添加完全) 24.otto-intellij-plugin otto事件导航工具。 25.eventbus-intellij-plugin eventbus导航插件 26.idea-markdown markdown插件 27.Sexy Editor 设置AS代码编辑区的背景图 首先点击界面的设置按钮 进入设置界面,选中Plugins,右边选择 Browser … ,输入Sexy … 下面自动弹出候选插件,右边点击Install 安装 安装成功 后需要重启AS 重启完成之后 进入设置界面 选择other Setting 下的Sexy Editor , 右侧 insert 一张或多张图片即可,上面的其他设置可以设置方位 间隔时间 透明度等等,设置完成后,要关闭打开的文件,重新打开项目文件即可在代码编辑区显示插入的图片,作为代码编辑区的背景图。 28.folding-plugin 布局文件分组的插件 29.Android-DPI-Calculator DPI计算插件 30.gradle-retrolambda 在java 6 7中使用 lambda表达式插件 修改编译的jdk为java8: 31.Android Studio Prettify 可以将代码中的字符串写在string.xml文件中 这个插件还可以自动书写findViewById 32.Material Theme UI 添加Material主题到你的AS 33..ignore 我 们都知道在Git 中想要过滤掉一些不想提交的文件,可以把相应的文件添加到.gitignore 中,而.gitignore 这个Android Studio 插件根据不同的语言来选择模板,就不用自己在费事添加一些文件了,而且还有自动补全功能,过滤文件再也不要复制文件名了。我们做项目的时候,并不是所有文 件都是要提交的,比如构建的build 文件夹,本地配置文件,每个Module 生成的iml 文件,但是我们每次add,commit 都会不小心把它们添加上去,而gitignore 就是解决这种痛点的,如果你不想提交的文件,就可以在创建项目的时候将这个文件中添加即可,将一些通用的东西屏蔽掉。 34.CheckStyle-IDEA CheckStyle-IDEA 是一个检查代码风格的插件,比如像命名约定,Javadoc,类设计等方面进行代码规范和风格的检查,你们可以遵从像Google Oracle 的Java 代码指南 ,当然也可以按照自己的规则来设置配置文件,从而有效约束你自己更好地遵循代码编写规范。 35.Markdown Navigator github:Markdown Navigator Markdown插件 36.ECTranslation Android Studio Plugin,Translate English to Chinese. Android Studio 翻译插件,可以将英文翻译为中文。 37.PermissionsDispatcher plugin github:PermissionsDispatcher plugin 自动生成6.0权限的代码 38.WakaTime github:WakaTime 记录你在IDE上的工作时间 39.AndroidWiFiADB 无线调试应用 40.AndroidLocalizationer 可用于将项目中的 string 资源自动翻译为其他语言的 Android Studio/IntelliJ IDEA 插件

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值