Maven 使用指南(2): 第一个例子Hello World
来源:互联网 发布:淘宝app修改店铺名称 编辑:程序博客网 时间:2024/05/16 08:56
在介绍第一个例子之前,先说一下为什么要使用Maven或是使用Maven有什么好处。
- 管理多个.jar文件。在开发Java应用时常常需要使用大量的第三方开发包,这些开发包大多数是.jar 的形式提供,比如使用spring 框架,通常的用法是下载这些.jar 文件,然后添加到Java下面中。部署时也要一些打包这些.jar 文件。使用Maven,在POM 中描述所需引用(依赖的)的库,在编译,发布,部署时Maven会自动下载或本地寻找所需库文件。因此使用Maven通常需要有网络连接。
- 管理Java项目的依赖和版本,Java依赖的库有不同的版本,提供在POM文件指定所引用库的版本号,Maven自动帮助管理这些依赖关系及其版本。
- 使用标准的项目结构,开发和测试人员可以使用标准的项目目录结构。
- Maven定义了项目开发的几个标准步骤:编译,发布,单元测试及部署以帮助项目开发。
在下载安装好Maven,我们就可以创建第一个项目。
在命令行下输入
mvn archetype:generate第一次运行时,Maven会下载所需库文件,这需要一些时间此时Maven 提示选择 archtype ,简单的讲archtype 指所需创建Java项目的类型,1. 这里我们使用缺省的类型 217:217: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project2. 使用缺省的新创建项目版本6: 1.13. 输入项目GroupId. 项目的GroupId 一般可以认为是项目的包名称,比如com.pstreets.mavendemo4. 输入项目的artifactId,项目的artifactId 可以认为对于项目的主类名。比如HelloWorld.5. 输入项目的version: 缺省为1.0-SNAPSHOT,标识项目打包到1.0-SNAPSHOT.jar6. 输入package ,可以使用GroupId同样的包名称Maven则创建项目HelloWorld,具有如下项目结构:
为方便起见,使用Eclipse将这个项目导入到Workspace, File->Import->Maven->Existing Maven Projects
Maven创建的文件几引用的库如下:
可以看到Mavan创建了两个目录main和test 分别对应项目的代码和测试代码。
打开项目的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>com.pstreets.mavendemo</groupId> <artifactId>HelloWorld</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>HelloWorld</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>
可以看到刚才输入的,和,实际上Maven使用这三个值来唯一指定一个项目。引用一个库文件也是通过这三个值来确定所引用的库及其版本好,比如本例引用最新的junit 库版本为3.8.1. 此时假定junit还需引用其它库,Maven自动管理而无需在pom文件中指定。
创建好项目中,可以打开main 中的App.java 和 test目录中的AppTest.java 看一下:
App.java
package com.pstreets.mavendemo;/** * Hello world! * */public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); }}AppTest.java
package com.pstreets.mavendemo;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 <img src="http://www.imobilebbs.com/wordpress/wp-includes/images/smilies/icon_smile.gif" alt=":-)" class="wp-smiley"> */ public void testApp() { assertTrue( true ); }}
这样项目就创建好了,既可以在命令行中使用mvn 来compile (编译) ,test(单元测试), package(打包)
也可以通过Eclipse 来编译,测试项目
比如在命令行中输入mvn package 会创建target 目录,其中生成打包文件 HelloWorld-1.0-SNAPSHOT.jar ,可以通过命令
java -cp .\HelloWorld-1.0-SNAPSHOT.jar com.pstreets.mavendemo.App
则显示 Hello World!
其实 mvn package 会调用compile ,test 等步骤,后面将详细描述。
- Maven 使用指南(2): 第一个例子Hello World
- Maven 使用指南(2): 第一个例子Hello World
- Android RoboGuice 使用指南(2):第一个例子Hello World
- Android RoboGuice2 使用指南(2): 第一个例子Hello World
- Websharp 2 - 第一个例子Hello World
- Qt的第一个例子:Hello World
- Linux 设备驱动的第一个例子:Hello World
- Linux设备驱动的第一个例子:Hello World
- Linux 设备驱动的第一个例子:Hello World
- Linux 设备驱动的第一个例子:Hello World
- AJAX第一个例子hello word
- Delphi 的接口(2) - 第一个例子
- Delphi 的接口(2) - 第一个例子
- 5、第一个例子
- opengl 第一个例子
- hibernate第一个例子
- ajax 第一个例子
- JavaBeans第一个例子
- Hibernate工作原理
- POJ 3093 Margaritas on the River Walk(背包)
- c语言中的预处理(2)
- HDU 4323
- Android开发环境搭建
- Maven 使用指南(2): 第一个例子Hello World
- Js 移动焦点和被选择
- oracle job 创建 删除
- 对于那些不是来IT行业做事的人,我想说
- android ListView详解
- 编写Qt线程类
- 突破IP封锁,共享网络
- 贪婪算法与计数排序
- 用C#统计未排序一维数组中重复元素的个数