Maven 使用指南(2): 第一个例子Hello World

本文详细介绍了如何使用Maven管理Java项目依赖、版本、结构,并通过命令行和Eclipse创建并配置Java项目,包括项目结构搭建、依赖管理、版本指定、文件组织等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在介绍第一个例子之前,先说一下为什么要使用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 project


  2. 使用缺省的新创建项目版本6: 1.1


  3. 输入项目GroupId. 项目的GroupId 一般可以认为是项目的包名称,比如com.pstreets.mavendemo


  4. 输入项目的artifactId,项目的artifactId 可以认为对于项目的主类名。比如HelloWorld.


  5. 输入项目的version: 缺省为1.0-SNAPSHOT,标识项目打包到1.0-SNAPSHOT.jar


  6. 输入package ,可以使用GroupId同样的包名称


  Maven则创建项目HelloWorld,具有如下项目结构:


 

  为方便起见,使用Eclipse将这个项目导入到Workspace, File->Import->Maven->Existing Maven Projects

  Maven创建的文件几引用的库如下:


 

  可以看到Mavan创建了两个目录main和test 分别对应项目的代码和测试代码。


  打开项目的pom.xml


  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  4.0.0

  com.pstreets.mavendemo

  HelloWorld

  1.0-SNAPSHOT

  jar

  HelloWorld

  http://maven.apache.org

  UTF-8

  junit

  junit

  3.8.1

  test


  可以看到刚才输入的,和,实际上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

:-)

 

  */

  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 等步骤,后面将详细描述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值