- 浏览: 1146852 次
- 性别:
- 来自: 火星郊区
博客专栏
-
OSGi
浏览量:0
文章分类
- 全部博客 (695)
- 项目管理 (48)
- OSGi (122)
- java (79)
- Vaadin (5)
- RAP (47)
- mysql (40)
- Maven (22)
- SVN (8)
- 孔雀鱼 (10)
- hibernate (9)
- spring (10)
- css (3)
- 年审 (6)
- ant (1)
- jdbc (3)
- FusionCharts (2)
- struts (4)
- 决策分析 (2)
- 生活 (10)
- 架构设计 (5)
- 破解 (2)
- 狼文化 (4)
- JVM (14)
- J2EE (1)
- 应用服务器 (1)
- 我的链接 (5)
- 数学 (2)
- 报表 (1)
- 百科 (6)
- Flex (7)
- log4j (2)
- PHP (1)
- 系统 (2)
- Web前端 (7)
- linux (6)
- Office (1)
- 安全管理 (5)
- python (2)
- dom4j (1)
- 工作流 (3)
- 养生保健 (4)
- Eclipse (8)
- 监控开发 (1)
- 设计 (3)
- CAS (1)
- ZK (41)
- BluePrint (3)
- 工具 (1)
- SWT (7)
- google (2)
- NIO (1)
- 企业文化 (2)
- Windoes (0)
- RCP (7)
- JavaScript (10)
- UML (1)
- 产品经理 (2)
- Velocity (10)
- C (1)
- 单元测试 (1)
- 设计模式 (2)
- 系统分析师 (2)
- 架构 (4)
- 面试 (2)
- 代码走查 (1)
- MongoDB (1)
- 企业流程优化 (1)
- 模式 (1)
- EJB (1)
- Jetty (1)
- Git (13)
- IPV6 (1)
- JQuery (8)
- SSH (1)
- mybatis (10)
- SiteMesh (2)
- JSTL (1)
- veloctiy (1)
- Spring MVC (1)
- struts2 (3)
- Servlet (1)
- 权限管理 (1)
- Java Mina (1)
- java 系统信息 (6)
- OSGi 基础 (3)
- html (1)
- spring--security (6)
- HTML5 (1)
- java爬虫搜索 (1)
- mvc (3)
最新评论
-
Tom.X:
http://osgia.com/
将web容器置于OSGi框架下进行web应用的开发 -
chenyuguxing:
你好, 为什么我的bundle export到felix工程中 ...
在Apache Felix中运行bundle -
string2020:
<niceManifest>true</ni ...
Bundle Plugin for Maven -
jsonmong:
OSGI,是未来的主流,目前已相当成熟。应用OSGI比较好的, ...
基于OSGi的声明式服务 -
zyhui98:
貌似是翻译过来的,有很少人在linux上做开发吧
如何成为“10倍效率”开发者
Maven2 已经推出,Maven 的官方网站称,Maven2 相对于 Maven1 是一个相当大的转变,甚至不惜牺牲兼容性来达到这一目的。(为了 Maven1 的用户着想,Maven1 仍在继续他的使命。)如此大的变动到底换来了什么样的结果?
1. 更快、更简单
比起 Maven1 那不急不慢的运行速度,Maven2在速度上有了质的飞跃,甚至与Ant相比也毫不逊色(当然,下载不算)。除此之外,"简化工作,使用业界公认的最佳实 践"也是是 Maven2 的另一大主题,其他的新特性无处不在体现 Maven2 为简化工作而做出的努力。
2. 更少的配置文件
Maven1 和 Maven2 主要配置文件的对比:
- Maven1:project.xml、maven.xml、project.properties和build.properties。
- Maven2:pom.xml和settings.xml。
POM是Maven的核心对象模型,在Maven2中POM已由project.xml转移到pom.xml中使用,版本也由3升级为4。对于项目,一般只需要pom.xml就行了。
在Maven2中不需要也不提倡使用maven.xml,原因如下:
- plugin的易用性的增强。
- 散布于maven.xml中的内容难以在不同项目间共享,也不利于维护。在Maven2中建议使用自定义的plugin来封装这些内容。
如果仍期望能够使用类似maven.xml的功能,如<preGoal>,请参考Inserting non-standard build steps using preGoals and postGoals。
在Maven2中,配置使用settings.xml,它取代了原有的project.properties和build.properties。配置在Maven2中存在两种级别:
- 用户级,针对操作系统登录用户而言。一般在$home/.m2/,对于windows用户,就是目录:C:\Documents and Settings\用户名\.m2\settings.xml。
- 全局级:一般在%M2_HOME%/conf/settings.xml,M2_HOME是Maven2的根目录环境变量名。
在settings.xml中可以配置,如本地Repository、proxy等等,关于settings.xml的结构可以从Maven的官方网站上获取。
3. Plugin语言更换
在Maven2中,编写plugin的语言由jelly变更为Java和BeanShell。Java在速度上更有优势,而且开发人员的熟悉程度更高。对于其他的流行脚本,如groovy,Maven的官方网站的意见是,等待其更成熟时再考虑
。
4. 提供预定义的目录模板
好的目录结构可以使开发人员更容易理解项目,为以后的维护工作也打下良好的基础。Maven2根据业界公认的最佳目录结构,为开发者提供了缺省的标准目录模板。Maven2的标准目录结构如下:
使用目录模板,可以使pom.xml更简洁。因为Maven2已经根据缺省目录,预定义了相关的动作,而无需人工的干预。以resources目录为例:
- src/main/resources,负责管理项目主体的资源。在使用Maven2执行compile之后,这个目录中的所有文件及子目录,会复制到target/classes目录中,为以后的打包提供了方便。
- src/test/resources,负责管理项目测试的资源。在使用Maven2执行test-compile之后,这个目录中的所有文件及子目录,会复制到target/test-classes目录中,为后续的测试做好了准备。
这些动作在 Maven1 中,是需要在 maven.xml 中使用<preGoal>或<postGoal>来完成的。如今,完全不需要在pom.xml中指定就能够自动完成。在src和 test都使用resources,方便构建和测试,这种方式本就已是前人的经验。通过使用Maven2,使这个经验在开发团队中得到普及。
创建标准目录模板,可以通过如下命令:
mvn archetype:create -DgroupId=com.codeline.commons -DartifactId=codelineCommons
groupId和artifactId的含义与Maven1中的含义一样,参数artifactId的值会作为项目根目录的名字。除了建立相应的目录之外,Maven2还会创建缺省的pom.xml。
Maven2也考虑到:不同类型的项目需要拥有不同的目录结构。如创建web项目,可以使用命令:
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp
5. 生命周期的引入
在Maven2中有了明确的生命周期概念,而且都提供与之对应的命令,使得项目构建更加清晰明了。主要的生命周期阶段:
- validate,验证工程是否正确,所有需要的资源是否可用。
- compile,编译项目的源代码。
- test-compile,编译项目测试代码。
- test,使用已编译的测试代码,测试已编译的源代码。
- package,已发布的格式,如jar,将已编译的源代码打包。
- integration-test,在集成测试可以运行的环境中处理和发布包。
- verify,运行任何检查,验证包是否有效且达到质量标准。
- install,把包安装在本地的repository中,可以被其他工程作为依赖来使用
- deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
- generate-sources,产生应用需要的任何额外的源代码,如xdoclet。
如果要执行项目编译,那么直接输入:mvn compile即可,对于其他的阶段可以类推。阶段之间是存在依赖关系(dependency)的,如test依赖test-compile。在执行 mvn test时,会先运行mvn test-compile,然后才是mvn test。
6. 新增Dependency Scope
在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:
- compile,缺省值,适用于所有阶段,会随着项目一起发布。
- provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
- runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
- test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
- system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
<scope>的使用举例:
<dependency> <groupId>hibernate</groupId> <artifactId>hibernate</artifactId> <version>3.0.3</version> <scope>test</scope> </dependency>
7. 传递依赖,简化依赖管理
在Maven1中,需要把依赖所需要的包也一并列出。这对于使用类似如Hibernate的用户来说所操的心太多了,而且也不方便。在Maven2 中实现了传递依赖,如此对于Hibernate所依赖的包,Maven2会自动下载,开发人员只需关心Hibernate即可。
注意:只有得到Maven支持的依赖,通常是plugin形式出现,才能获得这个特性。而且对于一些老的plugin,可能由于时间的关系不支持传 递依赖。如至少在Maven 2.0.1中,对于Hibernate 2.1.2,仍然需要显式列出Hibernate 2.1.2所依赖的包。
发表评论
-
svn和maven结合使用
2012-09-27 12:46 1092目前项目组在开发一个 ... -
用nexus搭建maven私服
2012-09-13 09:12 1126首先介绍一下背景,公 ... -
maven 去掉泛型警告和过时警告
2012-09-11 13:04 3439使用maven的过程中,常常会因为一些警告而不能通过编译,例如 ... -
maven 配置篇 之pom.xml
2012-08-27 08:36 1067pom作为项目对象模型。通过xml表示maven项目,使用 ... -
maven 配置篇 之 settings.xml 整理中...
2012-08-27 08:34 1151maven2比起maven1 来说,需要配置的文件 ... -
使用maven2 进行团队配置 整理中
2012-08-27 08:31 1388对于团队来说,建立统一的开发环境是必须的,而maven能很好 ... -
联通网络环境下无法访问http://repo1.maven.org/maven2/中央库解决,镜像库添加
2012-08-27 08:30 1611Maven 2的安装和使用虽然不是一点即用,但也不是很复杂 ... -
Maven新建欧洲中央镜像源
2012-07-12 09:42 1186熟悉maven的朋友都知道,我们maven的中央镜像源一直都 ... -
Maven properties
2012-01-19 10:57 1172Intro Because I couldn't fin ... -
maven常见问题问答
2011-12-29 08:21 1161. 前言 Maven ,发音是[`me ... -
Nexus入门指南(图文)
2011-12-28 08:16 1080Nexus介绍 Nexus 是Maven仓 ... -
Maven中多模块项目的Site生成
2011-12-31 08:46 1336疲累不堪的我一定不能在写完之前倒下。Maven生成站点大家都会 ... -
Maven的配置和使用
2011-12-29 08:21 11221、下载和安装maven 注:在使用之前,应首先安装 ... -
maven2站点的定制和发布
2012-01-05 11:02 1806mvn site功能强大,特别是在生成的项目站点中可以添加很多 ... -
一劳永逸的修改Maven的编译级别
2011-12-20 13:28 1349网络上最常见的方式是: Xhtml代码 ... -
Maven问题总结
2011-12-20 11:50 1973Maven问题总结 参考:http://tianya ... -
maven创建项目实例讲解
2011-12-06 10:14 1202在正文开始前,先要特别感觉两位同学——光远师兄和浩天,谢 ... -
maven 配置篇(一)
2011-11-26 16:44 1294了settings.xml配置,下来说一下maven2的主要配 ... -
Maven 配置
2011-11-18 08:27 1555在mvn.bat中很有用的一段 说了可以设置哪些参数 怎么de ... -
maven入门总结
2011-10-20 09:39 1092刚来公司使用的第一个构建工具就是maven,当时学会了几个 ...
相关推荐
Maven2 的新特性.7z 文档选项 打印本页 将此页作为电子邮件发送 级别: 初级 键 胡 (jianhgreat@hotmail.com), 西安交通大学硕士 伟红 胡 (huweih@cn.ibm.com), 工程师,IBM 区域合作伙伴支持...
**Maven2的新特性** 1. **多模块项目管理**:Maven2引入了聚合项目(Aggregation)的概念,可以管理多个子项目,使得大型项目管理更加方便。 2. **更强大的POM**:POM在Maven2中得到了增强,支持继承和依赖管理。...
3. 在新创建的"m2e"文件夹内,创建一个名为".location"的文本文件,并在其中输入Maven插件的实际路径。 4. 重启Eclipse,Eclipse应该能识别到这个链接并加载Maven插件。 标签“maven maven2 maven离线”进一步明确...
然而,Eclipse本身并不直接支持Maven的特性,这就需要Maven 2 Eclipse Plugin来填补这一空白。安装此插件后,Eclipse用户可以直接在IDE内创建、导入、管理和构建Maven项目,无需离开IDE进行命令行操作。 Maven 2 ...
- 设置新的环境变量`M2_HOME`,其值为`d:\maven2`。 - **验证安装**:在命令行输入`mvn -v`,如果正确显示了Maven的版本信息,则表示安装成功。 #### 三、配置Maven2 - **配置文件位置**:Maven的配置文件有两个...
**Maven 3.5.2 的特性** 1. **性能提升**: Maven 3.5.2对缓存机制进行了优化,提高了构建速度,减少了不必要的网络请求。 2. **更好的错误报告**: 提供更清晰的错误信息和堆栈跟踪,帮助开发者更快地定位问题。 3...
** Maven 最新版本详解 ** Maven 是一个强大的项目管理和构建工具,主要用于Java应用程序的开发。它通过标准化项目构建过程,...无论你是新手还是经验丰富的开发者,理解 Maven 的核心概念和最新特性都是至关重要的。
Maven 的核心特性之一是它的构建生命周期。Maven 定义了一系列的构建阶段,这些阶段按照一定的顺序执行,每个阶段都有特定的任务和功能。主要的构建生命周期包括: - **Clean Lifecycle**: 清理项目的构建目录。 - ...
7. **Maven 3.5.3 的新特性与改进** - Maven 3.5.3 版本可能包括对之前版本的bug修复,性能优化,以及对Java新版本的支持等。 - 它可能增强了对多模块项目和大型项目构建的处理能力,提高了构建速度和稳定性。 8....
Maven 的最新版本通常包含了最新的特性和修复,以确保开发人员可以利用最新的技术进行开发。 在描述中提到的下载链接是一个博客文章,它提供了Apache Maven的安装指南。尽管此处没有提供具体的版本信息,但一般来说...
首先,让我们深入了解 Maven 和 Eclipse 的核心特性: **Maven**: 1. **项目对象模型 (Project Object Model, POM)**:Maven 使用 XML 文件(POM.xml)来定义项目配置,包括依赖、构建过程、插件等。 2. **依赖...
Maven3.5.3是该工具的一个稳定版本,提供了许多改进和新特性。 在Maven中,一个项目的核心配置文件是`pom.xml`,它包含了项目的基本信息、依赖库、构建目标等关键信息。Maven通过解析`pom.xml`来理解项目的需求,并...
Maven 3.6.0是该工具的一个稳定版本,提供了多项改进和新特性,旨在提高开发效率和增强项目的可维护性。 Maven的核心概念是项目对象模型(Project Object Model,简称POM)。POM是一个XML文件,包含了项目的配置...
1. **创建Maven项目**:首先,我们需要使用Maven的`archetype:generate`命令创建一个新的Maven Web项目,选择适合的项目骨架,如`maven-archetype-webapp`。 2. **添加Struts2依赖**:在`pom.xml`文件中,我们需要...
**JDK 1.7**,也称为Java 7,提供了许多新特性,如try-with-resources语句、钻石操作符、字符串在常量池中的优化等,提高了代码的可读性和性能。在Maven项目中,我们会在`pom.xml`中指定JDK版本。 **Eclipse 4.5**...
借助Maven的继承特性,可以定义一组父POM,子模块继承这个父POM,共享相同的配置信息,这有助于维护项目结构的一致性。 学习Maven的过程,不仅要掌握如何安装和配置Maven,还要理解Maven的工作机制和项目管理的方法...
这使得开发者能够利用Maven的自动化特性,同时享受Spring Security提供的高级安全特性。 **Ajax 2:提升Web交互体验** Ajax 2 是对第一代Ajax技术的升级,它进一步增强了Web页面的动态性和交互性,无需刷新整个...
4. **创建Maven项目**:在Eclipse的`File` -> `New` -> `Other` -> `Maven Project`中,按照向导创建新的Maven项目。选择`Create a simple project`,然后输入Group ID、Artifact ID和Version等基本信息。 5. **...