Maven简介
- 如果要是进行归类,也会将maven规划为SCM软件的一种,它也属于项目管理工具,但是于SVN不同的是,Maven主要是进行开发包的管理.
- 现在的软件项目开发绝不可能从头开始写,所以就需要引用大量的开发包,最初的做法是下载jar文件,而后在需要的地方拷贝项目的WEB-INF/lib中,但是这种方法很不方便,如果项目要更换jar包的版本,需要手动删除已有的jar文件,而后手动添加新的jar文件,如果jar文件非常的多,则会非常的麻烦.
- 所以为了解决这个问题,Apache提供了一个开发包管理工具—Maven.
- 观察一个开发包管理操作
- 以Eclipse为例,建立一个Maven Project
- 选择quickstart结构
- Group Id为总的包名,artifact为子项目名称
-
随后会开始项目的构建,这个构建过程取决于你的网络状况
-
在整个的Maven之中,对于所有的开发包管理都是依靠 pom.xml文件完成的,这个文件可以完成开发包的管理切换,也可以进行一些连接的配置,或是项目的子模块配置.
-
得到的项目结构
- 如果需要进行开发包的管理,那么可以登录一个Maven仓库:https://mvnrepository.com/
- 更换junit版本,修改pom.xml文件
- 将version中的内容改为4.12,后保存修改
- 之后系统会通过远程的maven仓库下载所需的junit版本
- Maven会把所有的开发包放到默认的路径中:C:\Users\用户名.m2\repository目录下
- maven适合于做开发包的管理
- 如果所有的开发者都通过网络下载开发包,速度会变慢
- Eclipse如果要建立Maven项目,JDK版本是会有差异的
Windows中配置maven
-
如果要想进行maven的使用,可以登陆 https://maven.apache.org/ 上下载开发包,
-
但是需要注意的是,从Maven2.x开始,Maven分为两个版本,Maven 1.Maven2,现在大多使用的是Maven2
-
现在使用的windows中进行配置,使用的版本为 apache-maven-3.6.0-bin.zip,将其解压缩
-
Maven本身需要JDK的配置支持,所以一定要在系统环境中配置好JAVA_HOME,就是JDK的安装目录
- 将maven的开发包的命令配置到Path属性之中
- maven命令在maven/bin中
- 定义一个MAVEN_HOME环境变量,值为maven的安装目录
- 在PATH中添加"%MAVEN_HOME\bin%"
- 测试maven命令是否已经配置成功,随意打开一个cmd窗口输入"mvn-v"
- 如果出现一下信息表示maven配置完成
- 如果要进行Maven的操作,默认情况下使用的都是国外仓库,速度实在太慢,所以为了是开发包下载速度变快,建议将现在的仓库变为国内仓库.
- 阿里云仓库引用地址
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
- 修改Maven开发包下的conf/下的settings.xml文件
- 在mirros分支中添加国内仓库引用
- 这样在进行开发包下载的时候速度回得到大大提升.
- 利用Maven进行一次项目的开发编写操作,本次使用记事本完成,目的为输出一个HelloWorld
- 在E盘中建立一个javawork的目录
- 进入到javawork目录之中,随后需要建立一个文件夹,在maven里面所有的java源程序都要求保存在src目录下(src/main/java/包名称)
- 在src/main/java/包名称目录下创建一个 Hello.java文件
- 如果要想编译,需要在javawork目录下建立一个pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>mao.shu</groupId>
<artifactId>MevanProject</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<dependencies>
</dependencies>
</project>
- 在此文件中有一下几个重要信息
modelVersion | POM模块版本信息 |
groupId | 描述的是项目所属于的组织名称 |
artifactI | 描述的是项目名称,最后会于groupId结合作为最后的包名称 |
version | 描述的是项目的版本号 |
packaging | 最终版本的发布形式 |
-
对项目进行打包编译:(项目打包编译必须要有pom.xml文件的支持)
-
进入到pom.xml文件所在的目录(javawork}
-
输入以下命令进行编译
mvn compile
- 编译之后会javawork中生成一个target子目录,该目录保存的就是所有的编译文件
- 将生成的.class文件打包成jar文件*
- 回到 javawork目录,输入以下的命令进行打包处理
mvn package
- 此时的jar文件保存在javawork/target目录下,jar文件名称为 artifact+version.jar
- 执行jar文件中的Hello.java类
java -cp target/jar文件名称 Hello.java
- 此时完成了整Maven基础开发,
linux配置maven
- 需要准备出linux的maven开发包:
- 将这个开发包通过XFTP上传到linux之中
- 此时将开发包保存到/usr/local目录之中
- linux中需要配置好JAVA_HOME
- 使用linux命令为压缩包进行解压
tar xzvf /src/ftp/压缩包名称 -C /usr/local
-为了方便配置为解压出的文件进行更名
mv 文件名 新文件名
- 修改linux中的环境配置属性
vim /etc/profile
- 追加以下内容
export M2_HOME=maven安装路径
export PATH=$PATH:$JAVA_HOME/bin:$2_HOME/bin:
- 刷新配置
source /etc/profile
- 使用mv -v 命令测试当前命令是否正常
- 下面需要进行仓库信息的配置,修改"/maven安装目录/conf/settings.xml"文件
- 在mirros分之中添加一下内容
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
- 保存退出之后,创建一个javawork目录,在此目录下创建(src/main/java/mao/shu)
mkdir -p /etc/local/javawork/src/main/java/mao/shu
- 在src/main/java/mao/shu目录下创建Hello.java文件,输出HelloWorld
cd javawork/src/main/java/mao/shu/
vim Hello.java
- 将pom.xml文件拷贝到javawork中
- 使用xftp软件上传pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>mao.shu</groupId>
<artifactId>MevanProject</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<dependencies> </dependencies>
</project>
- 回到javawork目录下对程序进行编译处理
mvn compile
- 编译之后会在javawork目录下生成target目录,该目录保存所有编译后*.class文件
- 在回到javawork目录下进行打包处理
mvn package
- 在target目录中会生成*.jar文件,之后就可以使用jar文件进行程序的执行了.
java -cp jar目录 类名称
-
maven的配置工具在各个平台上使用都是一样的
-
如果linux系统是centOS 的如果要设置静态ip地址,则可以参考这篇文章