阅读更多

23顶
1踩

编程语言

转载新闻 Maven 3.0 正式发布

2010-10-09 10:04 by 见习记者 jitabc 评论(6) 有9953人浏览

真是千呼万唤始出来,在经历了7个alpha、3个beta、以及3个RC版本之后,Maven 3.0正式版终于发布了。Maven团队在RC的过程中收到了许多反馈,待到反馈渐渐减少的时候,他们决定发布3.0正式版。我其实从alpha就已经开始使用Maven 3了,期间偶尔遇到了一些小问题,但总得来说Maven 3非常的稳定。Jason Van Zyl – Maven的创立者,他说过“在Maven 3中我们修复了超过1,000个无法在Maven 2中修复的bug,因此对于Maven 2用户来说,Maven 3其实完全可以健康的替换之前的版本”

读者可以从Apache Maven的官方网站下载 Maven 3:
http://maven.apache.org/download.html

我应该升级么?

答案是“YES”,如果你在使用Maven 2,犹豫着是否应该升级到Maven 3,担心着会遇到兼容性问题,那大可以打消这个顾虑,Maven 3自设计之初就一直考虑与Maven 2的兼容性,这不仅仅是指兼容Maven 2的核心,还包括大量的 org.apache.maven.plugins 与 org.codehaus.mojo 插件。虽然由于某些插件代码的特殊性,无法做到100%完全的兼容,但已经基本不会遇到问题了,感兴趣的读者可以看一下Maven 3与主要Maven插件的兼容性关系列表。Maven 3有超过500个的自动化集成测试来覆盖各种用例,有很多项目如Nexus,自alpha起就开始转到Maven 3构建项目,Maven 3表现得异常优秀。

插件解析机制改进

Maven 2常被人诟病的一点是它经常自动引入一些有问题的插件,导致构建的不稳定。例如用户在使用某一插件的时候没有声明版本(Maven允许你这么做,但不推荐),Maven 2会自动下载该插件的最新版本,而这个版本可能是发布版如2.0,也可能是快照版2.1-SNAPSHOT,更糟糕的是,不同的时间,插件的最新版本可能是不一样的,因此可能用户今天引入了2.0,构建没有问题,但一个月后引入了最新的2.1-SNAPSHOT,导致构建失败了。这种机制会破坏构建的可重现性,因此在Maven 3中,如果用户不指定插件版本,Maven只会引入最新的发布版本插件,这样相对降低了引入问题插件的可能性,同时Maven 3还会给用户发出警告,提醒用户指定插件版本。

并行构建

除了更可靠更稳定之外,Maven 3还致力于提高性能。这包括大量的代码重构,以及使用Guice替代Plexus作为IoC容器。除此之外,Maven 3还引入了并行构建(目前只是实验性质的特性),使用并行构建后,Maven 3能够分析项目模块之间的依赖关系,然后并行地构建那些项目之间没有依赖关系的模块。例如以下的命令就表示让Maven使用4个线程构建项目:

$ mvn -T 4 clean install

用户还可以基于CPU核的数量来告诉Maven使用多少个线程,例如下面的命令表示为每个核分配2个线程:

$ mvn -C 2 clean install

根据官方文档的描述和我实际的测试,并行构建可以提升20%-50%的构建速度。

Maven Shell 和 Polyglot Maven

这两者不是Maven 3的核心内容,它们是Sonatype基于Maven 3开发的扩展。

Maven Shell是一个命令行终端,它可以智能的帮助用户与Maven进行交互,它使用一个一直运行的JVM来缓存各种构建信息,因此如果用户反复构建一些Maven项目的话,速度能够得到很大的提升。

Polyglot Maven是一个能够帮助那些讨厌XML的Maven用户而开发的,它致力于支持各类动态语言和DSL,目前Polyglot Maven支持YAML,这意味着用户可以用YAML来编写POM。

其它改进和特性

Maven 3摒弃了一些Maven 2中的不良特性,例如单独的profiles.xml不再被支持,Maven 1格式的仓库不再被支持,RELEASE和LATEST的插件不再被支持,等等。读者可以查看完整的兼容性列表

Maven 3将所有站点相关的逻辑从核心移出,都转移到了Maven Site Plugin中,这样用户才可能使用Doxia之外的格式来生成站点。

Maven 3能够更好的支持各种内嵌环境如IDE和持续集成服务器,如m2eclipse、Hudson。

23
1
评论 共 6 条 请登录后发表评论
6 楼 jenly10 2010-10-13 14:40
我们项目组刚刚引入了maven
5 楼 samfisher 2010-10-10 13:58
等了很久了,终于可以升级了
4 楼 kensunhu 2010-10-10 12:56
他说过“在Maven 3中我们修复了超过1,000个无法在Maven 2中修复的bug,因此对于Maven 2用户来说,Maven 3其实完全可以健康的替换之前的版本".
得迁移到Maven3了。
3 楼 freej 2010-10-10 08:42
太棒了,开始升级~
2 楼 wslfh2008 2010-10-10 00:43
一直听说Maven的好处,也学习过,不过还没用过呢,从现在起学习Maven!
1 楼 juvenshun 2010-10-09 20:42
本文转载自我的博客:http://www.juvenxu.com/2010/10/08/maven-30-released/
来源写错了

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 开放平台的Open API设计

    开放平台的Open API设计 开发者的抱怨 • 加密算法从没有听过! • 从其他平台迁移过来好难啊! • 说明文档看不懂

  • 【java】java接口安全之接口签名

    自定义的接口签名解签工具类

  • 开放API接口签名认证

    请求参数:access_key、nonce、timestamp、业务参数列表...、sign签名 签名:access_key+nonce+timestamp+业务参数列表+secret_key,业务参数列表按key自然排序,上各参数以&拼接后进行md5加密,md5转为大写作为sign签名 access_key:用户身份标识,前后端约定 nonce:随机字符串,请求唯一标识,每个请求的...

  • java类签名_Java类的类型签名查询怎么使用

    展开全部Java加密和数字签名编程快速入门 本文主要谈一下密码e69da5e6ba9062616964757a686964616f31333361313236学中的加密和数字签名,以及其在java中如何进行使用。对密码学有兴趣的伙伴,推荐看Bruce Schneier的著作:Applied Crypotography。在jdk1.5的发行版本中安全性方面有了很大的改进,也提供了对RSA算法的直接支...

  • Java 密码API

    对称加密相关API image.png /** * Aes 的Cipher 具体实现类是 AESCrypt * * @author huyanbing * @create 2022/12/16 2:39 下午 */ public class AESTest { private final int keyLen; private final SecretKey ...

  • JAVA加密解密体系-API规范及参考

    在项目实施过程中,经常会用到数据的加密、解密、摘要、签名等,JCA提供了一套完整的体系解决这些问题。在JAVA项目中要使用相关的算法对数据进行处理时,可以使用相关的类库,官方的中文参考文档地址链接如下:http://www.docin.com/p-478823277.html...

  • 数字签名API使用

    直接上代码: import java.io.IOException; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.MessageDigest; import java.secur

  • JavaSE——装饰设计模式+简单加密解密工程

    声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。装饰设计模式:写信的例题:在原来的基础上添加新的佐料形成新的产品如下面图片,都是佐料,可以随意搭配然后就可以随意搭配如何加密解密:可以使用JiaMiOutputStream去写东西,如何在输出字节之前给加密呢,使用FileOutputStream然后在输出去,到...

  • JAVA版API接口加密方式JAVA版API接口如何加密

    PI接口加密方式代码分享API接口加密源代码JAVA版,一下是JAVA完整的加密源代码,含有服务端和客户端demo 我之前写好了一版PHP版本的API接口加密通信DEMO代码 现在这一版是JAVA版API接口加密通信代码,并且这一版的客户端Test.java和我写好的PHP服务端是完全互通的 当然下面写好的服务端Encry.java和之前的写的PHP客户端也是互通的,这样做也是为了让同时有JAVA和PHP的程序员们能更好地协作通信 1.加密签名类EncryBean.java 2.服务端:Encry.java

  • java 安全加密api(cipher,signature,mac...)

    前言 本文主要讲解常用加密算法,消息摘要,二进制字符变换等的java实现,对于加密算法本身的原理只会做简单的介绍,详细的原理可百度。 相关概念 加密 加密是指将可读取的明文作为输入,通过特定的变换操作得到不易读取的输出(通常是二进制序列),目前常用的加密算法包括 对称加密的AES/DES,非对称加密的RSA/DSA/EC,加密很重要的一点就是解密,无论多复杂的数学变换,一定可以通过相应的逆变换得到...

  • Java加密体系结构(JCA)参考指南

    介绍 Java平台强调安全性,包括语言安全,密码学,公钥基础设施,认证,安全通信和访问控制。 JCA是平台的一个主要部分,包含一个“Provider”体系结构和一组用于数字签名,消息摘要(哈希),证书和证书验证,加密(对称/非对称块/流密码),密钥生成 管理和安全随机数生成等等。 这些API允许开发人员将安全性轻松集成到应用程序代码中。 这个架构是围绕以下原则设计的: 实现独立性 应用程序

  • (一)关于网络传输中的加密和加签的问题

    开发中经常会存在不同系统之间的数据共享,那么通过接口方式传输数据就是一件很方便的方式了。现在还有很多公司是用的http传输的数据,那么数据是不安全的存在着数据在传输过程中发生泄漏的风险,所以现在数据传输常用的就是加密和加签的方式来保证数据的安全。 加密和加签中用到了非对称性加密(RSA),而非对称性加密需要两个秘钥来进行加密和解密,这两个秘钥是公钥(publickey)和私钥(privateke

  • java常用的数字签名_java常用的加密,解密,数字签名等

    常用API java。security。KeyPairGenerator 密钥生成器类public static KeyPairGenerator getInstance(String algorithm) throws NoSuchAlgorithmException以指定的算法返回一个KeyPairGenerator 对象参数: algorithm 算法名。如:"DSA","RSA"publi...

  • Java使用RSA加密解密签名及校验

    由于项目要用到非对称加密解密签名校验什么的,于是参考《Java加密解密的艺术》写一个RSA进行加密解密签名及校验的Demo,代码很简单,特此分享!RSA加密解密类:package com.ihep; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import jav

  • 对外开发接口+Des加密解密

    小乖在各种调用别人的接口之后,在开发了一段时间的本系统之后,在没有事情做了之后,又开始给别人开发接口了,粗来的这段日子一直和接口杠上了……好在有进步,从调别人的接口到让第三方系统调我们的接口,定义接口规范,也是够够的了……              其实,从一开始我们就是分两个小系统开发的,一个只写接口(我们系统内部的接口),一个用来调用接口实现一部分的逻辑以及所有的前台界面。对于对外远程开发

  • RSA加密解密与加签验签

    RSA加密解密与加签验签   RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。1987年7月首次在美国公布,当时他们三人都在麻省理工学院工作实习。RSA就是他们三人姓氏开头字母拼在一起组成的。   RSA是目前最有影响力和最常...

  • java 加解密api_API加密框架原理解密

    关于框架的使用文章请参考:前后端API交互如何保证数据安全性?:http://cxytiandi.com/blog/detail/20235API数据加密框架monkey-api-encrypt:http://cxytiandi.com/blog/detail/36171monkey-api-encrypt 1.1.2版本发布啦:http://cxytiandi.com/blog/detail/3...

  • 常用加密解密(4)——数字签名

    原文链接:https://www.dubby.cn/detail.html?id=9125 之前介绍了《常用加密解密(1)》里面提到了消息摘要,那么这一篇的数字签名和消息摘要有什么区别呢?事实上数字签名就是带上非对称加密的消息摘要。 消息摘要的目的是防数据被篡改;而数字签名是抗否认。 签名的过程是: 总结就是,使用私钥加签,使用公钥验签 import java.security.*; im...

Global site tag (gtag.js) - Google Analytics