- 浏览: 1016416 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (826)
- 硬件 (8)
- 软件 (24)
- 软件工程 (34)
- JAVA (229)
- C/C++/C# (77)
- JavaScript (8)
- PHP (1)
- Ruby (3)
- MySQL (14)
- 数据库 (19)
- 心情记事 (12)
- 团队管理 (19)
- Hadoop (1)
- spring (22)
- mybatis(ibatis) (7)
- tomcat (16)
- velocity (0)
- 系统架构 (6)
- JMX (8)
- proxool (1)
- 开发工具 (16)
- python (10)
- JVM (27)
- servlet (5)
- JMS (26)
- ant (2)
- 设计模式 (5)
- 智力题 (2)
- 面试题收集 (1)
- 孙子兵法 (16)
- 测试 (1)
- 数据结构 (7)
- 算法 (22)
- Android (11)
- 汽车驾驶 (1)
- lucene (1)
- memcache (12)
- 技术架构 (7)
- OTP-Erlang (7)
- memcached (17)
- redis (20)
- 浏览器插件 (3)
- sqlite (3)
- Heritrix (9)
- Java线程 (1)
- scala (0)
- Mina (6)
- 汇编 (2)
- Netty (15)
- libevent (0)
- CentOS (12)
- mongod (5)
- mac os (0)
最新评论
-
kingasdfg:
你这里面存在一个错误添加多个任务 应该是这样的 /** * ...
Quartz的任务的临时启动和暂停和恢复【转】 -
kyzeng:
纠正一个错误,long型对应的符号是J,不是L。
Jni中C++和Java的参数传递 -
zhaohaolin:
抱歉,兄弟,只是留下作记录,方便学习,如果觉得资料不好,可以到 ...
netty的个人使用心得【转】 -
cccoooccooco:
谢谢!自己一直以为虚机得使用网线才可以与主机连接呢。。
主机网卡无网线连接与虚拟机通信 -
yuqilin001:
要转别人的东西,请转清楚点嘛,少了这么多类,误人子弟
netty的个人使用心得【转】
接上篇)在新创建了项目之后,可以看到目录结构:
从图中可以看出,Maven自动将项目源文件和测试用例分别放到了不同的目录下,但是却使用了相同的包名。这样生成可执行的产品时,就比较容易将产品代码 和测试代码隔离开;同时测试用例也可以直接引用同一包中被测试的类,既符合了JUnit的规范,也使程序更易读。
正如上图中标示,新建项目的JRE默认为J2SE-1.4,这会导致1.5之后的一些新特性得不到支持。可以通过下面的方法修改:
2、使用Maven管理依赖
在以往的开发中,我一般都会把用到的依赖都放到一个文件夹下,需要什么就像里面添加什么,然后和源文件一同放入到SVN中。其他开发人员在检出项目时会把这些包一起检出。但是这样做有几个弊端:
(1)最明显的一个问题,就是代码库会变得异常地大,有时候会上百兆,检出的时间会比较长
(2)为了保持每个开发人员的开发环境的设置都是独立的,我们会要求开发人员不能提交Eclipse项目配置文件, 如.project、.settings等。这就需要每个开发人员必须自己配置自己Eclipse的构建路径(Build Path)。如果有新的依赖提交,而其他开发人员不知晓的情况,就可能编译会出错;
(3)Java的库文件对版本的要求比较严格,而有些第三方包发布并没有说明其所依赖的版本,需要自己苦苦寻找;
(4)虽然我们并不常会看第三方库的源代码,但是有时候也需要进去了解一下,帮助解决问题。这时就需要自己在Eclipse中指定源文件的位置。
而Maven很好的解决了以上问题,只需要一个配置文件,就可以搞定所有了。比如要在上面的MavenDemo项目中引入JUnit:
点击OK后,就会将依赖自动下载到本地,并添加到项目的构建路径中,
查看pom.xml的内容,就会发现依赖在文件中的配置:
- < dependencies >
- < dependency >
- < groupId > junit </ groupId >
- < artifactId > junit </ artifactId >
- < version > 4.4 </ version >
- < type > jar </ type >
- < scope > compile </ scope >
- </ dependency >
- </ dependencies >
如果以后需要更改版本,只需要修改这里的版本号即可,当然可以从依赖的页面中删除和添加。
在上面提到了Maven可以自动管理依赖的依赖,为了显示这个强大的功能,特意引入了一个spring-core的包,然后切换到pom的 Dependencies Graph页面,可以看到,虽然只引入了一个spring-core,但是Maven却自动发现了它依赖的另外两个包,省去我们的很多麻烦。
3. 运行测试用例
在/src/test/java编写一个测试用例,然后直接在项目名称上点击右键,从菜单中选择Run as-->maven test。在运行过程中,Maven会自动下载需要的包,并且给出一份详细的测试报告。
这种方式可以运行项目中所有用例。当然可以依照原来的习惯,在项目目录中选择一个文件,按照JUnit的方式运行。
评论
图片都没有显示
发表评论
-
eclipse使用SVN创建,合并分支[转]
2011-11-11 17:11 911之前一直使用"小乌龟"进行分支建立与 ... -
持续集成之“依赖管理”
2011-08-04 18:10 807来源: infoq 发布时间: 2011-0 ... -
持续集成理论和实践的新进展
2011-08-04 18:10 988作者: 肖鹏 来源: InfoQ 发布时间 ... -
Maven原理和Maven2新特性
2011-06-30 16:02 1044Maven的基本原理和Maven2的新特性 用Maven做项 ... -
结合Maven2进行J2EE项目构建
2011-06-29 21:13 1202一.背景 Maven2 的基本 ... -
用Maven做项目管理
2011-06-29 21:10 1034用 Maven 做项目管理 在 Java世界中我们 ... -
天生一对"Maven2+Jetty" -- Maven2创建并管理WebApp
2011-06-29 19:21 1296Maven2代比1代改进很多,其中主要强调的是--它不仅仅是个 ... -
Maven实战(四)——基于Maven的持续集成实践
2011-06-28 13:16 962Martin的《持续集成》 ... -
Hudson+Maven+SVN 快速搭建持续集成环境
2011-06-28 13:07 1020hudson 是一个可扩展的持续集成引擎,Hudson非常 ... -
敏捷开发、极限编程
2011-06-27 00:35 878什么是敏捷开发?一种以人为核心、迭代、循序渐进的开发方法。在敏 ... -
敏捷开发简介
2011-06-27 00:34 1193在软件工业界,敏捷开发已成为众多高效开发团队的制胜之道。它不仅 ... -
用SecureCRT连接VMware中的Linux系统
2011-06-16 22:03 1601一、预备知识: Secure: SecureCRT将S ... -
持续集成之路——Maven
2011-06-15 15:04 732写在前面 ... -
持续集成之路——搭建Maven私服
2011-06-15 15:01 1077在开发过程中,有时候会使用到公司内部的一些开发包,显然把这些包 ... -
Maven仓库管理-Nexus(转帖后加强版)
2011-06-15 15:00 2039前面我讲到为什么要使用Maven, Maven的安装,以及如何 ... -
maven下nexus的搭建,jar包上傳等注意事項
2011-06-15 14:58 2490nexus是用來搭建本地jar ... -
解决nexus下载maven索引的问题
2011-06-14 23:23 3171在上个周五在公司的一 ... -
Maven仓库管理-Nexus(转帖后加强版)
2011-06-14 00:50 1108前面我讲到为什么要使用Maven, Maven的安装,以及如何 ... -
Hudson+Maven+SVN 快速搭建持续集成环境
2011-06-08 01:04 852hudson 是一个可扩展的持 ... -
海量小文件存储
2011-06-04 16:41 2392Web2.0网站,数据内容以几何级数增长,尤其是那些小文件 ...
相关推荐
接着,我们来安装构建工具——maven。Apache Maven是一个项目管理和综合工具,它可以帮助开发者管理项目构建、报告、依赖关系等。以下是maven的安装步骤: 1. 访问Apache官网...
Maven3培训教程.pdf Maven实战.pdf MavenQuickReferenceCard.pdf MavenTheDefinitiveGuide.pdf Maven学习.doc 持续集成之路——搭建Maven私服.doc 利用m2eclipse生成WTP项目.pdf
#### 开源力量公开课第四期——Maven与持续集成 在开源力量公开课的第四期讲座中,讲师许晓斌分享了关于Maven及其与持续集成结合的相关知识。这一期讲座主要探讨了如何利用Maven来提高软件开发效率,并介绍了持续...
Maven3培训教程.pptx MavenQuickReferenceCard.pdf MavenTheDefinitiveGuide.pdf Maven实战.pdf Maven实战——入门篇.pdf Maven学习.doc 持续集成之路——搭建Maven私服.doc 利用m2eclipse生成WTP项目.pdf
3. **持续集成**:Maven 集成了与 Jenkins、Hudson 等持续集成工具的兼容性,便于自动化构建和测试。 4. **质量控制**:通过结合 SonarQube 等工具,Maven 可以进行代码质量检查和静态分析。 总之,Maven 2.2.1 是...
《持续集成篇——Hudson持续集成服务器的安装配置与使用》 在当今的软件开发环境中,持续集成(Continuous Integration,简称CI)已经成为敏捷开发的重要组成部分。它通过频繁地将开发人员的代码更改集成到主分支,...
【TARS持续集成详解】 TARS是一个由腾讯开源的高性能RPC开发框架,源自腾讯内部的微服务架构TAF(Total Application Framework)。它旨在帮助企业快速构建分布式应用,通过统一的通信协议和自身协议语言解决了跨...
11. **持续集成与Maven**: Maven在持续集成服务器如Jenkins、Hudson中的角色,以及如何配置持续集成流程。 12. **Maven与构建自动化**: 如何将Maven与其他工具(如Ant、Gradle)结合,实现更复杂的构建自动化。 13...
综上所述,这个压缩包提供了 Jenkins 的核心安装文件和两个重要的插件——Maven 和 Git 插件,使得开发者能够构建一个集成了版本控制和构建自动化的工作流。通过这些工具的结合使用,团队可以高效地进行持续集成和...
7. **持续集成友好**:Maven 3.2.3与各种持续集成服务器(如Jenkins、Hudson)兼容性更好,支持更多CI工具的特性,简化了CI环境的配置。 8. **配置文件格式**:在这一版本中,Maven继续支持XML配置,同时也引入了...
**Maven的HelloWorld程序** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了...在实际开发中,Maven还能帮助我们管理各种依赖,自动化构建过程,并与持续集成系统无缝集成,从而提高开发效率和质量。
- **易于集成**:Maven与各种工具和服务(如持续集成服务器、代码托管平台)的集成非常方便。 - **文档自动生成**:Maven可以根据项目的POM文件自动生成文档,包括项目报告、站点文档等。 - **社区支持**:拥有庞大...
此外,还讲解了如何利用Maven进行持续集成,与版本控制系统(如Git)和构建服务器(如Jenkins)集成,实现自动化构建和测试。 对于初次接触Maven的读者,本书将引导他们快速上手,通过实例学习如何创建和管理Maven...
- **测试与持续集成**:结合Hudson等CI工具实现自动化的测试和构建流程。 - **Web项目与自动化部署**:利用Maven插件自动化部署Web应用程序。 - **版本管理**:Maven支持自动化的版本管理机制,简化版本控制过程。 -...
通过合理配置settings.xml,可以实现对不同环境的适配,如本地开发、持续集成服务器等。 至于“maven3.6.3”这个压缩包,它包含了Maven的完整二进制发行版。解压后,我们可以找到bin目录下的可执行文件,如mvn,...
Maven 可以很好地与版本控制系统(如Git)集成,同时与持续集成服务器(如Jenkins、Travis CI)配合,实现自动化构建和测试。 10. **Maven archetype** Maven archetype 是用于创建新项目模板的工具。通过...
- **版本管理**:Maven支持SNAPSHOT版本,便于持续集成和开发过程中版本的控制。 - **Maven Archetypes**:预定义的项目模板,用于快速生成符合特定框架或规范的新项目结构。 - ** profiles**:可以根据不同的环境...
此外,Maven还可以生成项目报告、辅助持续集成,并有强大的插件机制来扩展功能。 在项目中,`SQL.sql`文件通常包含了数据库表的创建脚本,用于初始化数据库结构。你可以根据自己的需求修改数据库连接配置,通常位于...
为了应对这些挑战,许多组织开始寻求一种更为高效且可靠的解决方案——持续集成和持续交付(CI/CD)。通过引入自动化构建和部署流水线,可以极大地提高软件交付的速度和质量,并确保在整个软件生命周期中维持高水平...