前言java
最近在研究java框架struts2的相关漏洞,而后就去看了官方给出的文档。在看文档的过程当中发现使用到了Apache Maven这个项目管理工具,我在网上搜索了一下,大多数文章都写得不是很系统,容易产生迷惑。我就本身来根据本身的学习过程,作个记录。一来为了方便本身复习,二来别人若是有相似需求也能够来看看。写的很差的地方,还请多多提出。linux
0x00 安装以及简单配置apache
首先咱们从官方进行下载,下载连接以下:windows
http://maven.apache.org/download.cgi
这里我下载的是二进制的包,解压之后咱们来到bin目录下,能够看到以下的目录结构:框架
而后咱们复制路径,设置环境变量。而后经过版本号的打印来判断是否安装成功,若是输出相似以下信息,说明安装成功(linux下的安装也是这个步骤,下载,解压缩,而后设置环境变量):maven
C:\Users\10920>mvn -v Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00) Maven home: D:\maven\apache-maven-3.5.2\bin\.. Java version: 1.8.0_152, vendor: Oracle Corporation Java home: D:\program\java\jdk1.8.0_152\jre Default locale: zh_CN, platform encoding: GBK OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
0x01 从helloworld开始构建咱们的项目工具
咱们在命令行中输入以下,开始构建咱们本身的项目:学习
mvn archetype:generate -DgroupId=com.test.helloworld -DartifactId=helloworld -Dpackage=com.test.helloworld -Dversion=1.0-SNAPSHOT
这里涉及到几个关键的字段,咱们随后会讲到。而后archetype:generate会为咱们列出一系列的archetype,也就是项目模型。我这里默认为#1107, 也就是maven-archetype-quickstart。而后选择版本,咱们默认选择6,(1.1的版本):测试
而后让咱们再次肯定以前的信息:ui
回车或者输入Y回车以后。提示项目部署完成,在家目录helloworld目录下, 目录结构以下:
其中,测试代码放在src/test目录下,源代码和资源文件放在src/main下。咱们能够观察到生成了App.java的一个文件,内容以下:
package com.test.helloworld; /** * Hello world! * */ public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); } }
0x02 项目打包
咱们切换到helloworld目录下 ,就能够对咱们建立好的helloworld项目进行打包操做了。打包的结果根据pom.xml文件中的配置选项来决定,这里默认将会生成jar的二进制包。
咱们执行命令, mvn package
若是没有error比较顺利,咱们的项目构建成功,输出以下:
[INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ helloworld --- [INFO] Building jar: C:\Users\10920\helloworld\target\helloworld-1.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 7.798 s [INFO] Finished at: 2018-01-03T20:02:16+08:00 [INFO] Final Memory: 19M/146M [INFO] ------------------------------------------------------------------------
提示信息中说明了咱们 生成的jar包的位置,此时咱们还发现生成 了一个target的目录。编译后的 class 文件放在 target/classes/ 目录下面,测试 class 文件放在 target/test-classes/ 目录下面。
0x03 测试项目
java -cp target/helloworld-1.0-SNAPSHOT.jar com.test.helloworld.App
说明咱们的项目成功了。
本节咱们简单学习了如何用Maven项目管理工具,对项目进行建立,打包。随后咱们将会学到项目的详细配置,依赖的安装,项目的分发等。