maven简介
maven是Apache旗下的管理java项目jar包的项目管理工具,有了它可以很方便的构建管理java项目。
安装maven
maven下载地址
http://maven.apache.org/download.cgi
下载合适的版本
将maven解压至/usr/local目录下
[root@localhost local]# tar -zxvf apache-maven-3.3.9-bin.tar.gz
添加环境变量
[root@localhost local]# vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.3.9
export PATH=$MAVEN_HOME/bin:$PATH
[root@localhost local]# mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /usr/local/apache-maven-3.3.9
Java version: 1.8.0_171, vendor: Oracle Corporation
Java home: /usr/local/jdk1.8.0_171/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-229.el7.x86_64", arch: "amd64", family: "unix"
创建maven项目文件
[root@localhost apache-maven-3.3.9]# mvn archetype:generate
执行命令后会自动联网下载一些插件,然后要求选择项目类型,我选择了默认,然后按要求输入信息会创建一个maven工程样例
进入创建的maven项目,用tree命令查看创建的项目结构,没有tree就yum install一个
[root@localhost apache-maven-3.3.9]# cd maven-project/
[root@localhost maven-project]# tree
bash: tree: command not found…
[root@localhost maven-project]# yum install tree -y
[root@localhost maven-project]# tree
.
├── pom.xml
└── src
├── main
│ └── java
│ └── maven-test
│ └── App.java
└── test
└── java
└── maven-test
└── AppTest.java
7 directories, 3 files
maven项目文件说明
上图可以看出maven项目结构,由pom.xml和src目录组成,src下面为main和test,pom.xml是maven项目管理文件,可以向该文件添加打包,编译插件。main目录存放项目源码,test文件存放代码。
[root@localhost maven-project]# cat pom.xml
<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>maven</groupId>
<artifactId>maven-project</artifactId>
<version>1</version>
<packaging>jar</packaging>
<name>maven-project</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
上面的pom.xml是自动生成的,详细说明如下:
<groupId>:创建项目时指定groupId
<artifactld>:创建项目时指定的artifactId
<version>:创建项目时指定的version
<packaging>:项目编译后,打成jar包发布
<denpendency>:测试时需要的jar包。
main目录
main目录存放java源文件,如创建的模板文件App.java
[root@localhost maven-project]# cat src/main/java/maven-test/App.java
package maven-test;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
test目录
test目录存放源代码的测试文档,如创建的模板文件的AppTest.java
[root@localhost maven-project]# cat src/test/java/maven-test/AppTest.java
package maven-test;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Unit test for simple App.
*/
public class AppTest
extends TestCase
{
/**
* Create the test case
*
* @param testName name of the test case
*/
public AppTest( String testName )
{
super( testName );
}
/**
* @return the suite of tests being tested
*/
public static Test suite()
{
return new TestSuite( AppTest.class );
}
/**
* Rigourous Test :-)
*/
public void testApp()
{
assertTrue( true );
}
}
上传maven项目至gitlab
进入maven项目所在目录
输入git config --global user.name “你的gitlab用户名”
输入git config --global user.email “你的gitlab的邮箱”
输入git init
输入git remote add orgin 你的gitlab的项目地址
输入git add .
输入git commit
输入git push -u origin master 将maven项目推送到gitlab端
[root@localhost maven-project]# git push -u origin master
Username for 'https://gitlab.com': *************@qq.com
Password for 'https://*******************@qq.com@gitlab.com':
Counting objects: 13, done.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (13/13), 1.40 KiB | 0 bytes/s, done.
Total 13 (delta 0), reused 0 (delta 0)
To https://gitlab.com/lucky123dog/test.git
ad9d1fc..e63f521 master -> master
Branch master set up to track remote branch master from origin.
刷新gitlab页面,已经可以看到刚才从远端推送的maven项目了
将默认生成的maven项目打包部署到tomcat
默认maven项目会生成pom.xml文件和src目录
[root@localhost maven-project]# ls
pom.xml src
打包
[root@localhost maven-project]# mvn clean
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-project 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ maven-project ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.233 s
[INFO] Finished at: 2020-03-31T16:31:52+08:00
[INFO] Final Memory: 6M/29M
[INFO] ------------------------------------------------------------------------
[root@localhost maven-project]# mvn install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-project 1
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.747 s
[INFO] Finished at: 2020-03-31T16:32:50+08:00
[INFO] Final Memory: 14M/35M
[INFO] ------------------------------------------------------------------------
生成一个target目录,里面有刚才打包的项目
[root@localhost maven-project]# ls
pom.xml src target
[root@localhost maven-project]# cd target/
[root@localhost target]# ls
classes maven-archiver maven-project-1.jar maven-status surefire-reports test-classes
将刚才打好的jar包复制到tomcat/webapps/目录下
[root@localhost target]# cp maven-project-1.jar /usr/local/tomcat/webapps/
运行
[root@localhost webapps]# java -jar maven-project-1.jar
Hello World!