Maven入门

[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的文件,输入如下内容:

<?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工程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值