以前和一个做互联网的朋友聊天,问我有没有用maven,我说没有,他们却是离不开maven。后来我想了一下,为什么我们这边不用呢?他们一大批人就在维护一个系统,面对性能要求,不断优化优化再优化是唯一目标。
我这边一个人要管理多个项目,和多个用户交流,还要带一些技术人员的工作,所以用熟悉的、稳定的、简单的技术框架(而且是蛮老的技术),很多时候从基础项目复制就可以立即开始新项目了,这样我们的精力都集中在业务上,不需要技术的持续更新。
可以说我们处在不同的生态圈下,适应不同的业务环境下,向着不同的重心在发展。
当然,我对新技术还是很有兴趣的,所以花了一天时间研究了一下maven。最主要是在myeclipse里搭建了一下web项目,并运行编译配置、部署到tomcat上去。
对于新技术,我最想总结出的是,它为什么出现,当初的发明者是出于什么目的搞这么一个东东的,是要解决什么问题?我基本上认为是:maven只是一个粘合剂,通过一个pom.xml的配置文件,把所有要用到的相关的包,相关的编译,打包,部署都整合在一起,是一个总指挥的工具。
具体代码不贴了,网上一大堆,我这里注重理解。我在弄maven的web项目时,主要有这么几个过程与经历的问题。
1.符合maven的项目结构,特别是webapp放在src/main下面。其它的main,test源代码没什么特别的。
2.当然包含jdk与jave EE的引入,设置好web-root位置
3.重点是pom.xml文件,除了定义好自己这个项目外,我用到的重点包括两部分:一部分是依赖(或者是材料),这个好理解,总要引入其它的jar包吧,里面有一个依赖范围的概念。另一部分是插件(或者是工具),比如打war包的插件,部署到tomcat的工具。部署到tomcat是热部署,要先启动tomcat,给插件提供管理地址,提供用户与密码。这样前面打成war包,后面就扔到tomcat的webapps里面了。很方便。
4.pom中的插件最外层是build标签,说明是build过程中用的工具。
5.maven有那么多依赖,有那么多插件是现成的,其实是有一个远程仓库的,按名称坐标来取用。运行时会远程拿过来放在本地仓库中用。本地仓库有一个settings.xml配置。我开始配置tomcat的用户密码在这里,部署失败,总是404,后来放到pom中才成功。
基本上弄一个项目,就有了概念了,确实在管理大应用时非常有效。到了这里,我非常关注plugin,于是又找到一个如何自己写plugin的贴子看了一下。
1.编写Mojo。Mojo = Maven Old Java Object,需要继承AbstractMojo,并实现其execute方法。
2.通过注解可以获取工程路径中的文件信息,那就可以用工具中的execute来处理这些文件了。或者处理源文件,或者处理结果goal。比如:
/**
* @parameter expression="${project.basedir}"
* @required
* @readonly
*/
private File basedir;
通过对一个plugin的开发,更能理解maven的工作原理。
分享到:
相关推荐
"Maven初探:一切从HelloMM开始!"这个标题暗示我们将从一个简单的Java项目开始,学习如何使用Maven进行构建。Maven是Apache软件基金会的一个开源项目,它以项目对象模型(Project Object Model,POM)为基础,通过...
Java社区有许多流行的工具,如Jenkins、Maven和Gradle,它们可以帮助自动化构建、测试和部署过程,提高软件开发的效率和质量。 总的来说,"基于计算机软件开发的JAVA编程应用初探"这份资料将带领我们从基础到高级,...
### Vertx-Web初探 #### 一、项目概述与准备 ##### 1.1 基本项目结构 为了确保项目的顺利进行,首先需要创建一个Maven项目,并且按照以下结构组织: - 源代码包:`src/main/vertx` - 资源路径:`src/main/...
**Spring Boot 初探:构建你的第一个应用** Spring Boot 是由 Pivotal 团队提供的全新框架,旨在简化 Spring 应用程序的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如 JDBC、MongoDB、JPA、RabbitMQ、...
1. 引入JUnit4依赖:在项目构建文件中(如Maven或Gradle)添加JUnit4的依赖。 2. 创建测试类:创建一个类,并使用`@RunWith(JUnit4.class)`注解标记为JUnit4测试类。 3. 编写测试方法:使用`@Test`注解标记测试方法...
对于Java项目,可以通过Maven或Gradle添加相应的依赖项。 2. **创建索引**:创建一个`Directory`对象,这可以是内存目录或磁盘上的文件系统目录。然后,实例化一个`IndexWriterConfig`并配置分析器。接着,使用`...
1. 添加相关依赖:在项目中引入Spring和MyBatis的库,通常通过Maven或Gradle的依赖管理来完成。 2. 配置MyBatis:创建mybatis-config.xml文件,定义数据源、事务管理器以及SqlSessionFactory。 3. 配置Spring:在...
### RabbitMQ:安装、配置与使用初探 #### 一、下载及安装 RabbitMQ 是一款基于 AMQP(Advanced Message Queuing Protocol)协议的消息中间件。本文将介绍如何在 CentOS 上安装并配置 RabbitMQ。 ##### 1.1 安装 ...
在本篇“MongoDB初探(二)----使用spring-data配置mongodb”中,我们将深入探讨如何利用Spring Data框架来集成和操作MongoDB数据库。Spring Data是Spring生态系统的一个重要组成部分,它提供了与各种数据存储系统...
【JBPM4.4 使用之流程管理初探】 JBPM(Java Business Process Management)是一款开源的工作流管理系统,它提供了一套完整的解决方案,用于设计、执行和监控业务流程。JBPM4.4是JBPM的一个重要版本,它在4.x系列中...
此外,Maven或Gradle这样的构建工具可以帮助管理项目依赖和构建过程。 总的来说,JSP和Servlet是Java Web开发中的重要组成部分,通过HTTP服务器,它们能提供动态交互的Web服务。理解和掌握这两者对于Java Web开发者...
在实际项目中,可以通过添加Netty的Maven依赖,创建ServerBootstrap,配置BossGroup和WorkerGroup,然后指定Channel和Handler来快速搭建服务器。NettyServerHandler是自定义的处理器,用于处理接收到的数据和发送...
《jodddboomdemo:一个基于Java的数据库交互框架初探》 在现代软件开发中,框架的选择往往决定了项目的效率和可维护性。虽然“jodddboomdemo”作为一个不太常见的框架,其使用者并不多,但它依然提供了一种利用Java...
《构建基于MySQL与Redis的SpringBoot应用初探》 在当今的Java开发领域,SpringBoot以其简洁、高效和快速启动的特点,已经成为企业级应用开发的首选框架。本项目"EmptySpringBootProject.zip"是一个基础的Maven项目...
三、Spring Boot 初探 Spring Boot的快速开发能力源于其对依赖的智能管理。`spring-boot-starter-parent`是Spring Boot的父POM,它定义了依赖管理和插件配置。`spring-boot-starter-web`则引入了一系列Web开发相关...
《Hibernate3.2初探:源码与工具的深度融合》 Hibernate,作为一款强大的Java对象关系映射(ORM)框架,极大地简化了数据库操作。在3.2版本中,它进一步提升了性能,优化了API,并引入了更多实用功能。本文将深入...
《GuttaKrutt:基于Java的libGDX游戏框架初探》 在IT行业中,游戏开发是一项技术密集型的工作,而Java作为一种广泛使用的编程语言,自然也被应用到了游戏开发领域。GuttaKrutt是一个名为“INF112 Maven模板”的项目...