JAVA基础--MAVEN

MAVEN的认识

什么是MAVEN

Maven是一个项目构建及管理工具,开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置,

  1. Maven 使用了一个标准的目录结构在不同开发工具中也能实现项目结构的统一。 统一项目结构

  2. Maven提供了清理,编译,测试,安装,打包,发布等命令可以让我们更加方便的去构建项目。 方便构建

  3. 同时采用pom.xml来导入依赖,可以自动下载jar,以及其所依赖jar,无需手动下载,拷贝Jar到项目中,大大解放了程序员的劳动力。 高效管理jar

MAVEN的优势

  • 自动构建:清理,编译,测试,安装,打包,发布

  • Jar包依赖管理:自动下载jar及其依赖的jar

  • 契约编程:在多种开发工具中也能实现项目结构统一

MAVEN的功能

使用Maven可以为我们完成很多相应的功能:清理代码,自动编译,完成测试,生成站点报告,进行打包(jar,war),项目部署。

  • 清理代码:相当于我们运行clear的效果

  • 自动编译:可以为咱们自动完成编译(类似于执行javac生成class文件)

  • 完成测试:实现测试功能,帮咱们完成

  • 生成报告:可以较为方便的实现对项目的管理

  • 打包:普通项目打jar包,web项目打成war包

  • 项目部署:只需要一句命令 mvn jetty:run 即可实现项目的部署

MAVEN的安装

下载MAVEN

从网上下载 Maven:Maven -- Download Apache Maven,解压即安装

配置环境变量

MAVEN配置

MAVEN仓库

Maven会自动为咱们添加相应的jar包,而这个jar包会先在本地仓库中查找,如果本地仓库中找不到,则会去中央仓库(网络上)去进行下载。

创建本地仓库

找一个位置,创建一个空目录作为本地仓库目录,如:D:/OpenSource/repository

配置本地仓库

进入Maven的安装目录,找到conf/settings.xml配置文件进行辑

  1. 增加本地仓库配置指向本地仓库目录:<localRepository>D:/OpenSource/repository</localRepository>

  2. 在<mirrors>节点下增加远程仓库地址,使用阿里云的maven仓库

html 复制代码
<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url> 
</mirror>
```

全局配置JDK8

html 复制代码
<profile>
	<id>jdk-1.8</id>    
		<activation>  

			<activeByDefault>true</activeByDefault>    
			<jdk>1.8</jdk>    
		</activation>    
		<properties>    
			<maven.compiler.source>1.8</maven.compiler.source>    
			<maven.compiler.target>1.8</maven.compiler.target>    
			<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    
		</properties>    
	</profile>

MAVEN的命令

MAVEN项目结构

创建项目

根目录pom.xml下的代码

html 复制代码
<project xmlns="http://maven.apache.org/POM/4.0.0" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<!-- maven模型版本 -->
	<modelVersion>4.0.0</modelVersion>
    <!-- 项目的groupId(项目组织唯一标识符),一般使用项目域名倒写-->
	<groupId>cn.ronghuanet.maven</groupId>
    <!-- 项目的 artifactId(项目的唯一的标识符,对应项目名) ,groupId+artifactId 组成完成的项目坐标 -->
	<artifactId>Hello</artifactId>
    <!--项目版本-->
	<version>0.0.1-SNAPSHOT</version>
    <!--项目名-->
	<name>Hello</name>

	<dependencies>
        <!--导入一个junit包-->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.9</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
    <!-- 生成报告时,如果出错,就将插件换成以下版本 -->
    	<build>
        <plugins>
 
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.7.1</version>
            </plugin>
 
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>3.0.0</version>
            </plugin>
 
        </plugins>
    </build>
</project>

MAVEN命令测试

打开cmd命令行,进入Hello项目根目录执行:

  • mvn compile :编译命令,可以重新编译源代码为字节码,如果有jar没下载完成,这个命令会先把需要的jar下载完成后再编译。

  • mvn clean:清理命令,会把target中的字节码删除掉,可以组合: mvn clean compile

  • mvn test: 测试命令:会帮我们执行测试代码

  • mvn package:打包命令,可以把项目打包成一个 jar,该命令会先执行 clean , test , complie

    如果不想执行测试命令可以跳过:mvn package -Dmaven.test.skip=true

  • mvn install:把项目打包,安装在本地仓库

  • mvn source:jar:生成项目的源码包例如: xxx-source.jar

  • mvn clean site:生成文档

  • mvn eclipse:eclipse:生成Eclipse的需要2个文件,即把项目转成eclipse的项目

  • mvn idea:idea :把项目转换成idea的项目

写在最后

MAVEN是一个十分重要的引入相关依赖的架构,IDEA不同版本适配的MAVEN略有差异,希望大家在使用时多多注意。笔者小,中,大厂均有面试经历,每日分析全栈开发知识,希望和大家共同进步。

相关推荐
Swift社区24 分钟前
在 Swift 中实现字符串分割问题:以字典中的单词构造句子
开发语言·ios·swift
没头脑的ht26 分钟前
Swift内存访问冲突
开发语言·ios·swift
没头脑的ht29 分钟前
Swift闭包的本质
开发语言·ios·swift
wjs202431 分钟前
Swift 数组
开发语言
吾日三省吾码1 小时前
JVM 性能调优
java
stm 学习ing2 小时前
FPGA 第十讲 避免latch的产生
c语言·开发语言·单片机·嵌入式硬件·fpga开发·fpga
湫ccc2 小时前
《Python基础》之字符串格式化输出
开发语言·python
弗拉唐2 小时前
springBoot,mp,ssm整合案例
java·spring boot·mybatis
oi773 小时前
使用itextpdf进行pdf模版填充中文文本时部分字不显示问题
java·服务器