`

maven初体验

阅读更多
       之所以看Maven,是因为看到一些文章,讲Maven是如何支持项目构建的,是下一代Ant……。于是乎,经不起诱惑,也开始接触了一下Maven。
       Maven的基本概念先不讲,这里主要记录我的一些体会。

       我对Maven印象最为深刻的是:Maven其实不是Ant,Ant通过Task完成很多关于项目编译,打包之类的问题,然后提供了很多的Task,完成其它的工作。Maven的目标其实非常特定,它就是为了简化项目构建的过程。

        在日常开发当中,我们会有很多个project,然后每个Project都会import一堆相关的jar文件,然后还需要自己搞定jar文件的版本。虽然,我现在会把这些jar文件放在一个目录,然后每次都从那个目录中去add jar。但是,这样也是比较烦琐。

        此外,如果一个项目需要用到其它项目的JAR,而其它项目也是正在开发当中的。那么,一般的做法,如果两个项目自己都可以控制的话,那么就自己手工build。要不然的话,就去通知另外一个项目提交代码,打成Jar包,供另外的项目所引用。这种依赖关系的控制也是比较麻烦。所以,很多项目要么就干脆防同一个项目了,一build的时候就需要build所有的类,确实给每个人增加了很多负担。

       Maven的目标就是要简化项目的构建过程。从Maven来源于Turbine的实践,可以知道它当时就是要解决多个类似项目引用类似JAR,构建方式不同的问题。但是,在现实世界中,各个项目确实会在构建方式和代码结构上有所不同。因此,能够做的就是将变化的和不变化的分开。

       Maven的方式是创建项目工程模型,通过定义POM文件来描述项目的资源构建方式。这个POM中包含的内容相当的多,但是通常应用的可能不会很多:)

       另外,针对各种不同的依赖,Maven有她的管理方式。Center Repository。中央仓库(其实我们自己也有中央仓库,只是没有它这么好)。maven build好的工程会放到Center Repository,这个东西,一方面当作配置库,一方面是个资源库。然后在本地找不到的东西,可以去远端的Center Repository找。因此,这个Center Repository的组织方式,也是有一套讲究的。一个项目最终作为JAR, WAR或者其它方式在Center Repository存储,一般是以项目名称来组织,这个就是groupId,然后通过artifactsId来表示,另外,通过Version来表示artifacts的版本:)应用途径相当简单。
   
    到目前为止,我只是学会了Maven的一些最基本的操作。5 min 入门 ,哈哈

    不变的还有:良好项目构建的过程。
   
  1. validate
  2. generate-sources
  3. process-sources
  4. generate-resources
  5. process-resources
  6. compile
  7. package
       这七个步骤,就是我们开发构建的过程。如果要用过程改进的眼光去衡量的话,我们遵循这个LifeCycle,就是实践了良好的过程:)
分享到:
评论

相关推荐

    maven阿里云镜像的settings文件

    maven的settings文件,阿里云镜像,快到飞起。给maven初体验者作为参考

    Eclipse+Maven+SpringMVC初体验

    先别下载,可以直接看博文,里面都有贴详细代码。 https://mp.csdn.net/postedit/79952532 Eclipse+Maven+Spring MVC,demo版,测试可以正常运行。

    上面maven工具使用springboot项目初体验的压缩包

    总之,这个压缩包提供了使用Maven和IDEA 2023.3开发Spring Boot应用的初步体验,涵盖了从项目结构、依赖管理、数据库连接到实际业务代码编写和测试的各个环节。对于想要学习或已经在使用Spring Boot的开发者来说,这...

    java的初体验

    在“Java的初体验”这个主题中,我们将深入探讨Java编程语言的基础知识,以及它作为强大工具在软件开发中的应用。Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司)于1995年发布,设计...

    头歌Spring Boot初体验.rar

    "头歌Spring Boot初体验"可能是一个文档,旨在引导初学者入门Spring Boot的世界。下面我们将深入探讨Spring Boot的核心特性和如何开始使用它。 1. **简介** Spring Boot是基于Spring框架构建的应用程序的快速启动...

    头歌springboot初体验

    通过"头歌springboot初体验.pdf"这份文档,你可能会学习如何创建一个基本的Spring Boot项目,了解Maven或Gradle的配置,编写第一个"Hello, World!"程序,理解自动配置的工作原理,并逐步接触Spring Boot的其他特性。...

    Struts 2初体验

    **Struts 2初体验** Struts 2是一款强大的基于MVC(Model-View-Controller)设计模式的Java Web框架,它旨在简化企业级应用程序的开发。作为一个初学者,了解并掌握Struts 2的基本概念和操作流程是至关重要的。 **...

    xfire初体验,webServices服务器配置

    这篇博客“xfire初体验,webServices服务器配置”可能是关于如何在开发环境中设置和使用XFire来创建和运行Web服务的教程。 首先,让我们了解XFire的基本概念。XFire是由Apache CXF的早期版本发展而来,它是一个轻量...

    spring-security初体验demo

    这个"spring-security初体验demo"很可能是为了帮助初学者理解如何在实际项目中集成和配置Spring Security。下面,我们将深入探讨Spring Security的核心概念、工作原理以及如何通过实践来设置一个简单的示例。 ...

    JUnit4初体验

    《JUnit4初体验》 JUnit4是Java编程语言中广泛使用的单元测试框架,它极大地简化了测试代码的编写,使得开发者能够更加专注于功能实现,同时确保代码的质量。本篇文章将带你初探JUnit4的魅力,了解其核心概念和使用...

    ubuntu14_myeclipse2015整合maven和git

    myeclipse2015 初体验,在ubuntu14上,并且整合maven和git,并实现将项目推送到github. 提供了myEclipse2015 破解工具 (myeclipse2014的破解工具是破解不了2015的) 详细步骤 请看文档 !

    java Jersey框架初体验

    本文主要介绍了如何在不编写任何代码的情况下,通过Eclipse集成开发环境和Maven插件来快速体验Jersey的魅力。 首先,我们要了解REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,...

    Easyb初体验

    【标题】:“Easyb初体验” 在IT行业中,我们经常需要进行各种自动化测试,以确保软件的质量和稳定性。Easyb就是这样一款工具,它为Java应用程序提供了简洁、易读的BDD(行为驱动开发)风格的测试框架。这篇博客将...

    拼图小游戏,Java Swing初体验.zip

    在本项目中,"拼图小游戏,Java Swing初体验.zip" 是一个基于Java Swing开发的简单拼图游戏的源代码库。Swing是Java提供的一个用于构建桌面应用程序的图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)...

    MyBatis入门初体验之使用大全(2)

    如果项目采用Maven构建,可以在pom.xml文件中添加如下依赖: ```xml <groupId>org.mybatis <artifactId>mybatis <version>3.2.2 ``` 这里的版本号3.2.2应根据实际使用的版本进行调整。如果需要与Spring框架集成...

    erp后台初版系统.zip

    用大佬的话来理解,就是 spring boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,spring boot 整合了所有的框架,总结一下及几点: (1)为所有 Spring 开发提供一个...

    univers-2.0:EE JavaEE,Vaadin框架,Spring,Spring Security,Spring Boot,Maven,JPA,JBoss-WildFly

    Vaadin提供了丰富的组件库,并支持响应式布局,使得开发者能够构建出具有优秀用户体验的Web应用。 Spring框架是Java领域最流行的轻量级框架之一,它简化了企业级应用的开发。Spring的核心特性包括依赖注入(DI)和...

    WebSocket样例

    这个特性对于实时通信应用非常重要,因为它减少了因网络问题导致的用户体验下降。实现这一功能通常需要设置心跳检测,定时发送小量数据以确认连接状态,一旦发现超时未收到回应,就触发重连流程。 在I/O多路复用...

    Intellij-IDEA-Tutorial-Smart:Intellij IDEA 中文教程

    前言一.Intellij IDEA 初体验二.Intellij IDEA 基本常识Debug 讲解自动生成代码选择重写,实现接口的方法自动创建 Test 测试类插件介绍打jar包和打war包三.版本控制篇版本控制总介绍svn 集成svn 简单使用git和github...

Global site tag (gtag.js) - Google Analytics