Apache Maven基础
一、简介
Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片段能管理一个项目的构建、报告和文档等步骤。
Maven也可被用于构建和管理各种项目,例如C#,Ruby,Scala和其他语言编写的项目。Maven曾是Jakarta项目的子项目,现为由Apache软件基金会主持的独立Apache项目。
二、Linux下安装Maven步骤
maven需要jdk环境,我们执行:
yum install java
1.首先到Maven官网下载安装文件,目前最新版本为3.0.3,下载文件为apache-maven-3.0.3-bin.tar.gz,下载也可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-3.0.3-bin.tar.gz
解压后的文件夹名为apache-maven-3.0.3
3.使用mv命令将apache-maven-3.0.3文件夹拷贝到自己指定的文件夹,比如/usr/local/下
mv apache-maven-3.0.3 /usr/local/
4.配置环境变量,编辑/etc/profile文件,添加如下代码
MAVEN_HOME=/usr/local/apache-maven-3.0.3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
所有配置:(包括java、mavean、nexus)
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
MAVEN_HOME=//opt/maven-t/apache-maven-3.6.1
export PATH=$JAVA_HOME/bin:JRE_HOME/bin:$PATH:$MAVEN_HOME/bin:$NEXUS_H OME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH
5.保存文件,并运行如下命令使环境变量生效
source /etc/profile
6.在控制台输入如下命令,如果能看到Maven相关版本信息,则说明Maven已经安装成功
mvn -v
三、常用命令
1、mvn compile 编译,将Java 源程序编译成 class 字节码文件。
2、mvn test 测试,并生成测试报告
3、mvn clean 将以前编译得到的旧的 class 字节码文件删除
4、mvn pakage 打包,动态 web工程打 war包,Java工程打 jar 包。
5、mvn install 将项目生成 jar 包放在仓库中,以便别的模块调用
四、实例测试
1. 创建一个Maven project
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
执行完命令后maven显示执行过程,成功会显示Build Success。
命令执行成功后,会发现当前目录多了一个my-app的目录,my-app结构如下:
├── pom.xml
└── src
├── main
│ └── java
│ └── com
│ └── mycompany
│ └── app
│ └── App.java
└── test
└── java
└── com
└── mycompany
└── app
└── AppTest.java
项目目录结构中主要包含三部分:
- xml Maven自带配置文件——Maven的核心
- src/main/java Java代码及资源目录
- src/main/test Java测试代码及资源目录
2. pom.xml介绍
pom.xml作为Maven最核心的一部分,具体内容如下:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>my-app</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
3. Build Project
Maven项目创建完毕之后就是想如何将代码转为我们需要的Jar或者War包。
在pom.xml文件当前路径执行下面命令,进行打包。
mvn package
Maven最后显示BUILD SUCCESS,执行命令成功。生成的jar包会在外面项目target目录下
java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
得到结果如下
Hello World!
五、修改仓库url
1、统一修改仓库地址
可以直接修改Mavenconf文件夹中的setting.xml文件,或者在.m2文件夹下建立一个setting·xml文件。
setting.xml里面有个mirrors节点,用来配置镜像URL。mirrors可以配置多个mirror,每个mirror有id,name,url,mirrorOf属性。
- id是唯一标识一个mirror
- name貌似没多大用,相当于描述
- url是官方的库地址
- mirrorOf代表了一个镜像的替代位置,例如central就表示代替官方的中央库。
mirror也不是按settings.xml中写的那样的顺序来查询的。所谓的第一个并不一定是最上面的那个。
当有id为B,A,C的顺序的mirror在mirrors节点中,maven会根据字母排序来指定第一个,所以不管怎么排列,一定会找到A这个mirror来进行查找,当A无法连接,出现意外的情况下,才会去B查询。
<mirrors>
...
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
2、分别给每个项目配置不同的中央库
http://10.141.196.243:8081/repository/repo_mvn_group/
直接在项目的pom.xml中修改中央库的地址。如下:
<repositories>
<repository>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</repository>
</repositories>
本文暂时没有评论,来添加一个吧(●'◡'●)