[b]Maven入门[/b]
[color=red][b]Maven简介与安装[/b][/color]
Maven是一个跨平台的项目管理工具,主要服务于基于java平台的项目构建,依赖管理和项目信息管理。构建是指对代码的编译,测试,以及生成报告和打包部署等,Maven能够自动化构建过程,同时能够管理项目中所需要的依赖,如相应的jar包等等。
Maven的安装网上有许多资料,附件是Maven3.0的压缩包。
[color=red][b]简单的HelloWorld项目[/b][/color]
1. 创建一个名为HelloWorld的目录,新建一个名为pom.xml的文件,输入如下内容:
pom.xml文件是Maven项目的核心,类似Ant的build.xml文件一样。POM(Prject Object Model)即项目对象模型,它定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等等。上述pom文件中的各个主要元素的意义是:
2.编写主代码
遵循Maven的规定,项目的主代码应该放在src/main/java/目录下,这样Maven会自动搜索这些主代码。 创建一个java文件,代码如下:
此时的文件目录如下图所示:
[img]http://dl.iteye.com/upload/picture/pic/84477/867c6f0a-9013-315a-b812-ecd2c95ebd36.png[/img]
HelloWorld类存在于helloworld文件夹中。
3.使用maven进行编译
在项目根目录下运行命令 [b]mvn clean compile [/b] 输出如下:
[img]http://dl.iteye.com/upload/picture/pic/84463/3eb2c144-777a-30b5-8b1b-3c87e013278b.png[/img]
[img]http://dl.iteye.com/upload/picture/pic/84465/2b8aba30-8cbc-356f-aa37-215eae0a1d23.png[/img]
clean命令是清理输出目录target,默认情况下,Maven构建的所有输出都在target目录中,compile命令是编译项目主代码,将主代码编译至target/classes目录。
[img]http://dl.iteye.com/upload/picture/pic/84481/d3437dfa-e58d-3fc9-817f-c1aa9f33c333.png[/img]
查看输出内容,可以看到在编译时会download许多的jar文件和相应的pom文件,这是因为,在Maven中,类似clean,compile这样的命令都是由相应的插件来完成的,因此首次执行这些命令时需要到Maven的中央仓库去下载,同时下载其所依赖的jar包,这些下载到的jar文件存放于Maven的本地仓库中,即用户目录的.m2\repository文件夹下
[img]http://dl.iteye.com/upload/picture/pic/84483/30ae9162-91f7-3139-b338-9f220569f975.png[/img]
Maven在执行时,如果需要用到所依赖的jar包,首先会到本地仓库去搜寻,如果本地仓库搜索不到,再到中央仓库去下载。所以再次执行上述命令时,不会再下载这些文件。
4.打包和运行
Hello World的POM中没有指定打包类型,默认打包类型是jar。执行命令 [b]mvn clean package[/b]
查看输出:
[img]http://dl.iteye.com/upload/picture/pic/84485/33edbc17-c0e5-368f-8417-a8a360a59c47.png[/img]
[b]mvn clean package[/b] 命令之后jar插件将项目的主代码打包成一个名为helloworld-1.0的jar。
[img]http://dl.iteye.com/upload/picture/pic/84489/10087a68-7333-3460-9545-ab4b16d00134.png[/img]
继续执行mvn clean install命令,这个命令是将输出的jar安装到了Maven的本地仓库中,这样可以让其它的Maven项目直接引用这个jar包。
输入以下命令运行HelloWorld项目 java –jar target\helloworld-1.0.jar
查看输出内容,发现运行失败。这是因为HelloWorld类有一个main方法,默认打包生成的jar是不能够直接运行的,因为带有main方法的类信息不会添加到manifest中,为了生成可执行的文件,需要借助maven-shade-plugin插件,配置该插件,修改pom.xml文件如下:
依次执行如下命令
[b]mvn clean install[/b]
[b]java –jar target\helloworld-1.0.jar [/b]
可以看到输出内容:HelloWorld , Maven
===================================================================
1.在cmd中对应目录下执行archetype 插件命令:
2.在mvn的项目中 pom.xml 文件所在目录, 运行 mvn eclipse:clean eclipse:eclipse ,会自动将mvn工程转成eclipse工程
[color=red][b]Maven简介与安装[/b][/color]
Maven是一个跨平台的项目管理工具,主要服务于基于java平台的项目构建,依赖管理和项目信息管理。构建是指对代码的编译,测试,以及生成报告和打包部署等,Maven能够自动化构建过程,同时能够管理项目中所需要的依赖,如相应的jar包等等。
Maven的安装网上有许多资料,附件是Maven3.0的压缩包。
[color=red][b]简单的HelloWorld项目[/b][/color]
1. 创建一个名为HelloWorld的目录,新建一个名为pom.xml的文件,输入如下内容:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.00"
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.lijie.mvn </groupId>
<artifactId>helloworld</artifactId>
<version>1.0 </version>
<name>Hello World Project</name>
</project>
pom.xml文件是Maven项目的核心,类似Ant的build.xml文件一样。POM(Prject Object Model)即项目对象模型,它定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等等。上述pom文件中的各个主要元素的意义是:
project : 所有pom.xml文件的根元素
modelVersion : 指定当前POM模型的版本,对于Maven2以及Maven3而言,只能是4.0.0
groupId : 定义了项目属于哪个组,如果你的公司是mycom,项目为myapp,那
么groupId一般就是com.mycom.myapp
artifactId : 定义了当前Maven项目在组中的唯一的ID ,本例中即为HelloWorld
version : 定义当前的版本
name : 声明一个更为详细的项目名称
2.编写主代码
遵循Maven的规定,项目的主代码应该放在src/main/java/目录下,这样Maven会自动搜索这些主代码。 创建一个java文件,代码如下:
package com.lijie.mvn.helloworld;
public class HelloWorld{
public static void main(String [] args){
System.out.println("HelloWorld , Maven");
}
}
此时的文件目录如下图所示:
[img]http://dl.iteye.com/upload/picture/pic/84477/867c6f0a-9013-315a-b812-ecd2c95ebd36.png[/img]
HelloWorld类存在于helloworld文件夹中。
3.使用maven进行编译
在项目根目录下运行命令 [b]mvn clean compile [/b] 输出如下:
[img]http://dl.iteye.com/upload/picture/pic/84463/3eb2c144-777a-30b5-8b1b-3c87e013278b.png[/img]
[img]http://dl.iteye.com/upload/picture/pic/84465/2b8aba30-8cbc-356f-aa37-215eae0a1d23.png[/img]
clean命令是清理输出目录target,默认情况下,Maven构建的所有输出都在target目录中,compile命令是编译项目主代码,将主代码编译至target/classes目录。
[img]http://dl.iteye.com/upload/picture/pic/84481/d3437dfa-e58d-3fc9-817f-c1aa9f33c333.png[/img]
查看输出内容,可以看到在编译时会download许多的jar文件和相应的pom文件,这是因为,在Maven中,类似clean,compile这样的命令都是由相应的插件来完成的,因此首次执行这些命令时需要到Maven的中央仓库去下载,同时下载其所依赖的jar包,这些下载到的jar文件存放于Maven的本地仓库中,即用户目录的.m2\repository文件夹下
[img]http://dl.iteye.com/upload/picture/pic/84483/30ae9162-91f7-3139-b338-9f220569f975.png[/img]
Maven在执行时,如果需要用到所依赖的jar包,首先会到本地仓库去搜寻,如果本地仓库搜索不到,再到中央仓库去下载。所以再次执行上述命令时,不会再下载这些文件。
4.打包和运行
Hello World的POM中没有指定打包类型,默认打包类型是jar。执行命令 [b]mvn clean package[/b]
查看输出:
[img]http://dl.iteye.com/upload/picture/pic/84485/33edbc17-c0e5-368f-8417-a8a360a59c47.png[/img]
[b]mvn clean package[/b] 命令之后jar插件将项目的主代码打包成一个名为helloworld-1.0的jar。
[img]http://dl.iteye.com/upload/picture/pic/84489/10087a68-7333-3460-9545-ab4b16d00134.png[/img]
继续执行mvn clean install命令,这个命令是将输出的jar安装到了Maven的本地仓库中,这样可以让其它的Maven项目直接引用这个jar包。
输入以下命令运行HelloWorld项目 java –jar target\helloworld-1.0.jar
查看输出内容,发现运行失败。这是因为HelloWorld类有一个main方法,默认打包生成的jar是不能够直接运行的,因为带有main方法的类信息不会添加到manifest中,为了生成可执行的文件,需要借助maven-shade-plugin插件,配置该插件,修改pom.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.00"
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.lijie.mvn</groupId>
<artifactId>helloworld</artifactId>
<version>1.0</version>
<name>Hello World Project</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade
.resource.ManifestResourceTransformer">
<mainClass>com.lijie.mvn.helloworld.HelloWorld</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
依次执行如下命令
[b]mvn clean install[/b]
[b]java –jar target\helloworld-1.0.jar [/b]
可以看到输出内容:HelloWorld , Maven
===================================================================
1.在cmd中对应目录下执行archetype 插件命令:
mvn archetype:create -DgroupId=lijie -DartifactId=mywebsite
-DarchetypeArtifactId=maven-archetype-webapp // 表示创建web项目
2.在mvn的项目中 pom.xml 文件所在目录, 运行 mvn eclipse:clean eclipse:eclipse ,会自动将mvn工程转成eclipse工程