一、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总结了这些特点和命令规范,为开发者提供了一个标准化、规范化的项目构建工具。通过单继承机制,Maven使得项目之间能够实现依赖和插件的统一管理,有效避免了冲突。继承和聚合的特点使得Maven非常适合于管理和...
maven总结笔记-继承和聚合
** 总结** Maven 是Java开发中的强大工具,通过统一的配置文件和生命周期,简化了项目的构建和依赖管理。了解和掌握 Maven 的配置、生命周期和插件使用,能够极大地提高开发效率。通过深入学习 `maven基本配置.docx...
### Maven环境搭建与配置详解 #### 一、Maven简介 Maven是Apache下的一个开源项目,它是一种项目管理和理解工具。通过一个中心信息管理的方式,Maven能够管理项目的构建、报告和文档。Maven使用描述性的XML文件来...
** 总结 ** Maven作为Java开发的重要工具,极大地提高了项目管理和构建效率。通过POM和依赖管理,它简化了项目的构建流程,而插件系统则提供了丰富的扩展功能。理解并熟练使用Maven,可以帮助开发者更专注于应用...
Maven总结** Maven简化了Java项目的构建、管理和部署过程,通过标准化的构建过程和依赖管理,降低了项目的复杂性。它提供了一套强大的工具集,使得开发者可以专注于编写代码,而非构建工具的配置。熟练掌握Maven,...
10. **Maven总结**:本书最后部分对Maven的关键概念和常用操作进行了总结,帮助读者巩固所学,同时提供了一些高级话题和实践建议,如 profiles、settings.xml的使用,以及Maven的最佳实践。 总的来说,这份电子板书...
**总结** Maven 3.5.2作为一个成熟的项目管理工具,极大地简化了Java开发中的构建和依赖管理。通过理解并熟练使用Maven,开发者可以更专注于编写代码,而无需关心构建过程的复杂性。在实际工作中,正确配置和利用...
maven知识的一些个人梳理,涉及到了Maven的生命周期和命令之类的。
### Maven知识总结 #### 一、Ant与Maven概述 - **Ant** 和 **Maven** 均为项目的构建工具,在软件开发过程中扮演着重要角色。Ant 是一个早期的构建工具,它提供了灵活的XML配置文件来描述构建流程,但缺乏高级特性...
总结来说,Apache Maven 3.2.5是一个强大而灵活的Java项目管理工具,它通过统一的构建生命周期、依赖管理和仓库机制,简化了项目的构建和维护工作。这个版本在性能和稳定性上做了优化,为开发者提供了更高效、更友好...
针对对初学者使用maven的遇到的问题的一些讲解 和学习的总结
【标题】:“nexus构建maven仓库总结(完善版2)” 在软件开发过程中,管理依赖库是一项重要的任务,而Nexus作为一个强大的仓库管理器,能够有效地帮助我们完成这一任务。Nexus不仅可以作为代理服务器缓存远程Maven...