`

maven 总结

 
阅读更多

一、maven简介____________________________________________________________

 

构建build(编译,运行单元测试,生成文档,打包,部署)

        每天第一件事,update代码,单元测试,编写自己的测试代码和产品代码,用IDE生成测试报告,

        QA发来bug,先在本地重现,按后生成WAR,部署到WEB容器下。除了编写源代码,编译,运行单元测试,

        生成文档,打包,部署,这些琐碎的工作就是构建,琐碎重复而且耗时,maven就是解决这个问题。

 

被误解的maven

        只有两类计算机语言,一类天天被人骂,还有一类没人用。--c++之父本贾尼。总会有bug。

        

MAVEN_HOME/M2_HOME是安装目录

~/.m2是本地仓库目录,可以在MAVEN_HOME/conf/setting.xml里修改,(windows下~当前目录c:/Users/river/)

mvn help:system

        输出java系统属性和环境变量(仅在第一次执行命令时下载需要的maven-help-plugin)

        

二、maven使用入门____________________________________________________________

 

官方库,内部库(也叫私服),本地库

maven有自己的一个官方库,一般公司会在配置一个自己的内部远程库(也叫私服),

本地库:安装目录中setting.xml的<localRepository>节点

跨项目的同包-rt.jar里也有很多的。能分离解耦开当然利大于弊。

约定优于配置

 

配置文件

maven只有一个配置文件:conf\setting.xml

 

编写pom.xml(项目配置文件)

        坐标:groupId,artifactId,version,packaging

        

编写主代码src/main/java/com/river/HelloWorld.java(maven约定,约定优于配置)

        编译mvn clean compile

        输出显示对应3个任务[clean:clean],[resources:resources],[compiler:compile](这是compiler插件的compile目标)

        

编写测试代码

        <dependency>

                <groupId>junit</groupId>

                ,artifactId,version,

                <scope>test</scope>        //指明只能在测试代码中import junit,主代码中import会报编译错误。

        </dependency>        

        mvn clean test

        输出显示对应3个任务[clean:clean],[resources:resources],[compiler:compile],,[resources:testResources],[compiler:testCompile]

        配置maven-compiler-plugin支持java5,使得支持junit,maven默认是java1.3,执行junit会报错

                <build>

                <plugins>

                    <plugin>

                        <groupId>org.apache.maven.plugins</groupId>

                        <artifactId>maven-compiler-plugin</artifactId>

                        <configuration>

                            <source>1.5</source>

                            <target>1.5</target>

                        </configuration>

                    </plugin>

                    

打包和运行            

        <packaging>jar</packaging>默认为jar,也可以为war,bundle

        mvn clean package //执行[jar:jar]

        mvn clean install        //执行[jar:jar],[install:install]把生成的jar安装到本地仓库中。

        构件或者生成的jar只有下载到本地仓库后,才能被其他maven项目使用

        默认打包生成的jar不能直接运行,因为带有main方法的类信息不会添加到manifest中(jar文件中的META-INF/MANIFEST.MF文件         

        ,无法看到Main-Class一行), 需要借助maven-shade-plugin。

生成项目骨架(基本目录结构和pom.xml)

        mvn archetype:generate

分享到:
评论

相关推荐

    Maven 总结.pdf

    Maven总结了这些特点和命令规范,为开发者提供了一个标准化、规范化的项目构建工具。通过单继承机制,Maven使得项目之间能够实现依赖和插件的统一管理,有效避免了冲突。继承和聚合的特点使得Maven非常适合于管理和...

    maven总结笔记-继承和聚合

    maven总结笔记-继承和聚合

    Maven总结【含配置文件】

    ** 总结** Maven 是Java开发中的强大工具,通过统一的配置文件和生命周期,简化了项目的构建和依赖管理。了解和掌握 Maven 的配置、生命周期和插件使用,能够极大地提高开发效率。通过深入学习 `maven基本配置.docx...

    maven 环境搭建总结

    ### Maven环境搭建与配置详解 #### 一、Maven简介 Maven是Apache下的一个开源项目,它是一种项目管理和理解工具。通过一个中心信息管理的方式,Maven能够管理项目的构建、报告和文档。Maven使用描述性的XML文件来...

    maven总结文档

    ** 总结 ** Maven作为Java开发的重要工具,极大地提高了项目管理和构建效率。通过POM和依赖管理,它简化了项目的构建流程,而插件系统则提供了丰富的扩展功能。理解并熟练使用Maven,可以帮助开发者更专注于应用...

    Maven项目管理工具

    Maven总结** Maven简化了Java项目的构建、管理和部署过程,通过标准化的构建过程和依赖管理,降低了项目的复杂性。它提供了一套强大的工具集,使得开发者可以专注于编写代码,而非构建工具的配置。熟练掌握Maven,...

    maven 电子板书

    10. **Maven总结**:本书最后部分对Maven的关键概念和常用操作进行了总结,帮助读者巩固所学,同时提供了一些高级话题和实践建议,如 profiles、settings.xml的使用,以及Maven的最佳实践。 总的来说,这份电子板书...

    maven 3.5.2 maven 3.5.2 maven 3.5.2

    **总结** Maven 3.5.2作为一个成熟的项目管理工具,极大地简化了Java开发中的构建和依赖管理。通过理解并熟练使用Maven,开发者可以更专注于编写代码,而无需关心构建过程的复杂性。在实际工作中,正确配置和利用...

    Maven学习总结脑图

    maven知识的一些个人梳理,涉及到了Maven的生命周期和命令之类的。

    Maven知识总结LBY.pdf

    ### Maven知识总结 #### 一、Ant与Maven概述 - **Ant** 和 **Maven** 均为项目的构建工具,在软件开发过程中扮演着重要角色。Ant 是一个早期的构建工具,它提供了灵活的XML配置文件来描述构建流程,但缺乏高级特性...

    Maven仓库apache-maven-3.2.5

    总结来说,Apache Maven 3.2.5是一个强大而灵活的Java项目管理工具,它通过统一的构建生命周期、依赖管理和仓库机制,简化了项目的构建和维护工作。这个版本在性能和稳定性上做了优化,为开发者提供了更高效、更友好...

    Maven_学习总结_全

    针对对初学者使用maven的遇到的问题的一些讲解 和学习的总结

    nexus构建maven仓库总结(完善版2)

    【标题】:“nexus构建maven仓库总结(完善版2)” 在软件开发过程中,管理依赖库是一项重要的任务,而Nexus作为一个强大的仓库管理器,能够有效地帮助我们完成这一任务。Nexus不仅可以作为代理服务器缓存远程Maven...

Global site tag (gtag.js) - Google Analytics