`
weitao1026
  • 浏览: 1048248 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Maven那点事儿

 
阅读更多
 首先推荐两本书,都是网上找的pdf。由于我自己没有工作需求,因此也只是简单的了解一下而已,并没有深入的研究。有兴趣的朋友,可以多看看这两本书。

《Maven权威指南》



《Maven实战》



  什么是maven?

  Maven是一个用于项目构建的工具,通过它便捷的管理项目的生命周期。即项目的jar包依赖,开发,测试,发布打包。

  下面我自己总结一下它的几个特点,看了这些特点,也许对maven有更多的了解。

  1 jar包依赖

  这个也许会maven最突出的特点了使用maven不需要上网单独下载jar包,只需要在配置文件pom.xml中配置jar包的依赖关系,就可以自动的下载jar包到我们的项目中。这样,别人开发或者使用这个工程时,不需要来回的拷贝jar包,只需要复制这个pom.xml就可以自动的下载这些jar包。

  而且,我们自己下载jar包,还有可能造成版本的不一致,这样在协同开发的过程中就有可能造成代码运行的不一致。通过使用maven精确的匹配jar包,就不会出现这种问题了。

  2 项目坐标

  Maven通过特定的标识来定义项目名称,这样既可以唯一的匹配其他的jar包,也可以通过发布,使别人能使用自己的发布产品。这个标识就被叫做坐标,长的其实很普通,就是简单的xml而已:


复制代码
1   <groupId>com.test</groupId>
2   <artifactId>maventest</artifactId>
3   <version>0.0.1-SNAPSHOT</version>
4   <packaging>jar</packaging>
5
6   <name>maventest</name>
7   <url>http://maven.apache.org</url>

复制代码

  groupId:所述的项目名称,由于有的项目并不是一个jar包构成的,而是由很多的jar包组成的。因此这个groupId就是整个项目的名称。

  artifactId:包的名称。

  version:版本号。

  packaging:包的类型,一般都是jar,也可以是war之类的。如果不填,默认就是jar。

  name和url,一个是名称,一个是maven的地址。主要就是上面的几个参数。

  当想要依赖什么jar的时候就可以通过下面的方式依赖:


复制代码
1 <dependencies>
2     <dependency>
3       <groupId>junit</groupId>
4       <artifactId>junit</artifactId>
5       <version>3.8.1</version>
6       <scope>test</scope>
7     </dependency>
8   </dependencies>

复制代码

  各个属性的内容基本上都是一样的。

  这里要注意的是jar包的命名规则:

  artifactId-version[-classifier].packaging

  比如上面的pom.xml生成的jar包名字就是:maventest-0.0.1-SNAPSHOT.jar。

  这里的classifier是可选的,但是有的项目可能还需要导出附属的一些文件,如javadoc,source等等,那么这个地方就需要配置一个字符串。一般都是JDKXXX之类的。

  3 测试驱动

  Maven是测试驱动的开发思路,因此工程创建初期,就包含两个文件夹,main和test。一个用于放置开发的java文件,一个用于写test单元测试。这样每次开发的时候,提前设计单元测试,就能帮助减少BUG。

  如何在eclipse中使用maven

  我使用的eclipse有自带的maven插件,因此直接创建就可以了。这里就不介绍如何安装maven了。下面介绍一下maven工程的创建:

  1 如何创建maven工程:

  直接点击新建,在里面可以找到Maven选项卡,点击Maven Project创建Maven工程



  2 选择默认的工程位置



  3 创建工程,红色是创建普通的maven工程的。粉色是创建web工程的。



  6 填写相关的groupId artifactId version等信息



  点击完成就创建好了一个简单的maven工程。

  maven工程是什么样子的?

  maven的工程一般都是如下的结构:


复制代码
first_maven 
|-- pom.xml 
`-- src 
    |-- main 
    |   |-- java 
    |   |   `-- com 
    |   |       `-- test 
    |   |           `-- App.java 
    |   `-- resources 
    |       `-- META-INF 
    |           `-- application.properties 
    `-- test 
        `-- java 
            `-- com 
                `-- test 
                    `-- AppTest.java 


复制代码

  pom.xml:用于定义或者添加jar包的依赖

  src-main:用于存放java源文件

  src-test:用于存放测试用例。

  也许工程下还会出现target文件夹,这个是用来生成对应的class文件或发布的jar包。

  Eclipse中maven常用的命令

  点击Run As就可以发现几个Maven的命令:

  Maven Build:

  这个命令用于编译Maven工程,执行命令后会在target文件夹中的classes中生成对应的class文件。

  Maven Clean:

  删除target文件夹,即删除生成的package包以及class等文件。

  Maven Test:

  先自动进行编译,在运行所有的测试用例。

  Maven install:

  发布生成对应的package包。



  注意:

  留意上面的命令的作用,build和test都会生成相应的class文件。也就是说,当你新建一个maven工程,或者clean一个maven工程后,如果没有使用这两个命令,直接针对类进行测试,会跑出java.class.notfound的错误。因为此时还没有编译生成class文件。

  只有使用了上面的两个命令后,才能针对某个类进行单元测试。
分享到:
评论

相关推荐

    Maven将带有第三方依赖的可执行程序打包示例

    博客《Maven 项目打包需要注意到的那点事儿》可以告诉你解决这些问题的办法。 有没有一个示例?有,本资源就是。 本资源是为博客《Maven 项目打包需要注意到的那点事儿》示例项目,博客地址:...

    maven那些事儿....

    ** Maven那些事儿 ** Maven,作为Java世界中的一款项目管理和综合工具,是Apache软件基金会下的一个项目。它简化了构建、依赖管理以及项目生命周期的维护。Maven通过使用一个项目对象模型(Project Object Model,...

    maven+nexus学习帮助

    首先,让我们详细探讨一下每个知识点: 1. **Maven**:Maven通过统一的构建生命周期和插件系统简化了Java项目的构建过程。POM.xml是Maven的核心,它定义了项目的基本信息、依赖、构建配置等。通过POM,Maven能够...

    IDEA最新版2020.1的maven工程本地依赖仓库无法使用问题(已解决)

    知识点一:IDEA最新版2020.1的maven工程本地依赖仓库无法使用问题的原因 IDEA最新版2020.1的maven工程本地依赖仓库无法使用问题的主要原因是pom文件中的依赖项无法正确加载。这是因为IDEA最新版2020.1的maven工程中...

    MavenRunHelper.zip

    然而,对于开发者而言,寻找并安装Maven相关的辅助插件有时并非易事,尤其是那些需要付费或者积分的离线包。针对这一问题,我们今天将详细介绍一款名为"Maven Helper"的插件,并分享如何免费离线安装这个实用工具。 ...

    maven项目demo

    在IT行业中,Maven是一个非常重要的构建工具,主要用于管理Java项目的构建、报告和依赖关系。Maven通过使用一种标准化的项目对象模型(Project Object Model,POM),使得开发者可以更轻松地配置和管理项目的构建...

    apache-maven-3.6.3.rar

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM)的概念,能够自动化构建过程,管理依赖关系,以及执行各种构建任务。Maven 3.6.3是该工具的一个...

    Java程序员上班那点事儿

    《Java程序员上班那点事儿》是一本面向Java程序员的专业读物,旨在帮助读者理解并应对在工作中遇到的各种问题。这本书采用简洁明了的语言风格,使得复杂的编程概念变得易懂且生动,非常适合Java初学者和有一定经验的...

    Java程序员上班那点事儿.

    本书《Java程序员上班那点事儿》旨在为即将踏入这个领域的新人提供全面的指引,帮助他们更好地理解这个职业,并为入职后的职业生涯规划提供清晰的方向。 首先,Java是一种广泛使用的面向对象的编程语言,其强大的跨...

    mavenssm maven spring3 struts2 mybaits

    pom xml冲突是件挺恶心的事儿 还有就是 遇到了导入myeclipse里 resource文件不编译到指定目录的问题 "&gt;maven建的web项目 用Myeclipse可直接导入 基于注解的零配置struts2 1 页面跳转 2 查数据库 3 事务控制到...

    Java程序员上班那点事儿.rar

    Java程序员在日常工作中所面临的挑战和经验是多样且丰富的,这份名为"Java程序员上班那点事儿"的压缩包,很显然包含了一些与Java编程、软件开发以及程序员生活相关的主题。让我们一起深入探讨其中可能涵盖的知识点。...

    maven-password-decrypter:用于解密Maven密码的实用程序

    我发现公司CI服务器使用规范的Maven位置( settings.xml和settings-security.xml )来存储凭据是很平常的事。 能够在Gradle构建中访问此信息而不必复制或解密静态凭据通常是有益的。用法示例: 我整理了一个,演示...

    java 程序员上班那点事儿

    【标题】:“java 程序员上班那点事儿” 【描述】:“对新入职和即将走上工作岗位的java程序员指导”意味着本资料旨在帮助新手Java程序员熟悉职场环境,提升职业技能,适应工作流程,并解决可能遇到的问题。这可能...

    androidx-maven.csv

    Android Support Library 依赖映射 AndroidX表格下载

    maven-it-extension:实验性的JUnit Jupiter扩展,用于编写Maven插件的集成测试Maven扩展Maven Core

    一段时间内有很多不同的方法,但是从我的角度来看,它们都缺少一件事:简单性。 更详细的原因等可以在“ 阅读。 这就是为什么我认为是时候提出一个更现代的设置并启动这个项目的原因。 基本思想 基本思想取决于为...

    各种jar包,因为有些maven是下载不了一些jar包的,提供了一些下载jar包.zip

    fastjson-1.2.62.jar flex-messaging-core-4.0.0.jar jep-2.3.1.jar jsr250-api-1.0.jar Oracle_10g_10.2.0.4_JDBC_ojdbc14.jar org.apache.commons.httpclient.jar

    Java程序员上班那点事pdf扫描版

    《Java程序员上班那点事》是一本专门为Java程序员量身打造的实践指南,它涵盖了Java开发者在日常工作中可能遇到的各种问题和挑战。这本书通过高清完整扫描版的形式,为读者提供了全面且直观的学习体验,使读者能够...

    Web Service 那点事儿(2)—— 使用 CXF 开发 SOAP 服务 - ImportNew1

    【Web Service 那点事儿(2)—— 使用 CXF 开发 SOAP 服务】 Web Service是一种基于标准协议的,用于不同系统间交换数据的技术。SOAP(Simple Object Access Protocol)是Web Service常用的一种通信协议,它定义了...

    纯净的SSM集成环境Maven构建的SpringMVC+MyBatis

    今天闲来无事,搭建了个纯净的SSM框架,才用Maven构建的Spring+SpringMVC+Mybatis集成开发环境,数据源采用Druid。仅仅包含一个基本表User的dao service 及Controller层。

Global site tag (gtag.js) - Google Analytics