`
wanghaisheng
  • 浏览: 91726 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

maven学习5——实践maven2,您的第一个maven项目

阅读更多

实践 Maven 2:您的第一个 Maven 2 项目

在第一个实践的例子里,您将看到如何用最小的努力使用 Maven 2 构建简单项目。Maven 2 内置的关于 Java 项目的知识消除了其他构建工具也许必须要经历的冗长的配置过程。

处理数值操作的类

该例使用了一个处理数值操作的类。这个主体类的源代码(叫做 NumOps)如清单 4 所示。


清单 4.NumOps 类

                    
package com.ibm.devworks;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class NumOps {
  private List <Operation> ops = new ArrayList 
<Operation>(); 
  public  NumOps() {
    ops.add( new AddOps());
  }
  public Operation getOp(int i)
   { Operation retval; 
   if (i > ops.size())  
      { retval = null; 
   } else { 
     retval = (Operation) ops.get(i);
   } return retval; 
  }
  public int size() { 
    return ops.size(); 
  }
  public static void main( String[] args ) {
    NumOps nop = new NumOps(); 
    for (int i=0;  i < nop.size(); i++) { 
      System.out.println( "2 " + 
        nop.getOp(i).getDesc() + 
        " 1 is " + 
        nop.getOp(i).op(2,1) ); 
    }
  }
}

 

NumOps 类管理一个能够在两个整数上执行数值操作的对象集。main 方法创建一个 NumOps 实例,然后调用由 NumOps 管理的每个对象,同时分别调用它的 getDesc() 方法和 op() 方法。由 NumOps 管理的所有对象都实现了在 Operation.java 中定义的 Operation 接口,接口代码如清单 5 所示:


清单 5. Operation 接口

                    
package com.ibm.devworks;

public interface Operation {
   int op(int a, int b);
   String getDesc();
}

 

在这个初始的例子里定义的惟一操作是一个 AddOps 类,如清单 6 所示:


清单 6. AddOps 类

                    
package com.ibm.devworks;

public class AddOps implements Operation {
   public int op(int a, int b) {
      return a+b;
   }
   public String getDesc() {
      return "plus";
   }
}

 

执行 NumOps 类时,会打印出下列输出:

 2 plus 1 is 3

 


使用 Archetype 来创建初始项目

要创建能用 Maven 构建的简单 Java 项目所需的一切,可以使用 Archetype 插件,它是 Maven 2 中的标准插件。不同于构建阶段插件,Archetype 在 Maven 项目构建生命周期之外运行,用于创建 Maven 项目。在您想要包含 NumOps 项目的目录中执行下列命令(将所有命令敲在一行):

mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes 
  -DgroupId=com.ibm.devworks -DartifactId=NumOps

 

该命令为 Archetype 插件提供您模块的坐标:com.ibm.devworks/NumOps/1.0-SNAPSHOT。在此情况下,不需要指定版本,因为 Archetype 插件常默认为 1.0-SNAPSHOT。此命令为项目创建了一个起始的 pom.xml 文件,也创建了规范的 Maven 2 目录结构。您将在本教程源代码下载处的 example1 目录下找到该代码(参见 下载)。

该输出应该与清单 7 类似:


清单 7. 使用 Maven Archetype 创建 NumOps 项目

                    

[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] -------------------------------------------------------------------------
---
[INFO] Building Maven Default Project
[INFO]    task-segment: [archetype:create] (aggregator-style)
[INFO] -------------------------------------------------------------------------
---
[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus

...

[INFO] [archetype:create]
[INFO] Defaulting package to group ID: com.ibm.devworks
[INFO] -------------------------------------------------------------------------
---
[INFO] Using following parameters for creating Archetype: maven-archetype-quicks
tart:RELEASE
[INFO] -------------------------------------------------------------------------
---
[INFO] Parameter: groupId, Value: com.ibm.devworks
[INFO] Parameter: packageName, Value: com.ibm.devworks
[INFO] Parameter: basedir, Value: C:\temp\maven
[INFO] Parameter: package, Value: com.ibm.devworks
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: artifactId, Value: NumOps
[INFO] ********************* End of debug info from resources from generated POM
 ***********************
[INFO] Archetype created in dir: C:\temp\maven\NumOps
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Sat Dec 02 22:04:02 EST 2006
[INFO] Final Memory: 4M/8M
[INFO] ------------------------------------------------------------------------


 

Archetype 插件创建了一个目录树、一个 pom.xml 文件和一个占位符 App.java 应用程序文件。它也为单元测试源码创建了一棵目录树,还创建了一个占位符 AppTest.java 单元测试文件。这个项目已经准备就绪。图 6 显示了该 Archetype 插件创建的目录和文件。


图 6. Archetype 生成的目录和文件
Archetype 生成的目录和文件

您只需将 NumOps.java、Operation.java 和 AddOps.java 文件移到 App.java 的位置,并移除 App.java。在下一部分中,将做出一些改变来定制生成的 pom.xm。

分享到:
评论

相关推荐

    项目管理利器——maven

    项目管理利器——maven,技术开发学习类稳定档案顶顶顶顶

    maven项目转换WEB项目

    在IT行业中,Maven是一个广泛使用的构建自动化工具,主要用于Java项目的管理。它的核心功能包括项目的构建、依赖管理和项目信息管理。然而,对于习惯于使用Eclipse IDE开发Web项目的开发者来说,Maven项目可能会显得...

    项目管理与SSM框架——Maven学习与案例练习

    实践操作是学习Maven的关键,可以创建一个新的Maven项目,配置POM文件,添加必要的依赖,编写源代码和测试代码,然后通过执行上述命令,体验Maven的整个构建过程。 通过深入理解和实践,开发者可以充分利用Maven的...

    Maven实战——入门篇

    Maven还是一个依赖管理和项目信息管理工具。通过Maven的中央仓库,可以轻松解决依赖管理中常见的问题,如版本冲突、依赖臃肿等。此外,Maven还提供了一系列插件,可以帮助开发者生成各种类型的文档和报告,从而更好...

    maven项目学习笔记记录

    Maven是由Apache软件基金会开发的一个项目管理工具,它通过一个统一的构建过程,简化了Java项目的构建、依赖管理和文档生成。Maven使用了一个基于XML的项目对象模型(Project Object Model,POM),来描述项目信息...

    Maven2 5分钟学习教程(中文)----maven2 官方文档翻译

    **Maven 2 5分钟学习教程(中文)——官方文档翻译** Maven是一个强大的Java项目管理工具,它简化了构建、依赖管理和项目生命周期的管理。这篇5分钟学习教程是Maven 2官方文档的中文翻译,旨在帮助初学者快速理解和...

    基于maven创建web项目

    在本文中,我们将基于maven创建一个web项目,首先我们需要搭建maven环境,包括安装Myeclipse2013、Tomcat8.0、Jdk1.8和apache-maven-3.3.9。然后,我们需要配置jdk和maven的环境变量,包括设置JAVA_HOME和MAVEN_HOME...

    Maven 教程:基础篇-尚硅谷学习笔记 2022年

    **Maven教程:基础篇——尚硅谷学习笔记 2022年** Maven是一个强大的Java项目管理和构建工具,由Apache软件基金会开发。它通过提供一个标准的项目对象模型(Project Object Model,POM)来简化项目的构建过程,并...

    idea使用maven创建web项目详细教程

    本教程将指导您使用 IDEA 创建一个 Maven Web 项目,从安装 Maven 到配置 Maven 环境、创建 Maven 工程、pom.xml 文件配置、依赖管理等。 1. 安装 Maven 在 IDEA 中使用 Maven 之前,需要先安装 Maven。在 Maven ...

    第一个maven工程案例

    本案例“第一个maven工程案例”旨在帮助初学者快速理解并掌握Maven的基本用法。下面将详细阐述Maven工程的创建、配置以及相关知识点。 1. **Maven工程结构** Maven遵循约定优于配置的原则,一个标准的Maven工程...

    maven学习资源整理

    本资源包是为初学者和有经验的开发者准备的一系列Maven学习资料,旨在帮助你更好地理解和掌握Maven的核心功能和最佳实践。 **官方文档:apache-maven** Apache Maven的官方文档是学习Maven的首选资源。这个文档...

    maven多模块web项目

    1. `index.jsp`:这是Web应用的主页面,通常用作入口点,展示给用户的第一界面。JSP(JavaServer Pages)是动态网页技术,允许开发者在HTML中嵌入Java代码,实现服务器端的动态渲染。 2. `META-INF`:这个目录包含...

    maven学习.zip

    在IT行业中,Maven是一个非常重要的构建工具,尤其在Java开发领域中被广泛使用。它通过项目对象模型(Project Object Model, POM)来管理项目的依赖、构建过程以及配置信息,极大地简化了项目的构建和管理工作。本...

    一个简单的maven web 项目

    总的来说,这个“一个简单的maven web 项目”是一个基础的学习平台,涵盖了Maven的使用、Java Web开发的基础知识,以及项目组织结构的理解。初学者可以通过这个项目深入了解Maven的配置,实践JSP和Servlet的开发,...

    持续集成环境搭建——maven、git、jenkins、tomcat

    Apache Maven是一个项目管理和综合工具,它可以帮助开发者管理项目构建、报告、依赖关系等。以下是maven的安装步骤: 1. 访问Apache官网(http://maven.apache.org/download.cgi)下载最新版的maven安装包。 2. 解...

    maven项目+mybatis

    Maven是Java开发中的一个项目管理和综合工具,而MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。 **Maven详解:** Maven是Apache软件基金会开发的一个项目管理工具,主要用于构建、管理和...

    使用Maven构建多模块项目

    Maven多模块项目通常遵循一个标准的目录结构,包括一个顶级父 pom.xml(如test-hd-parent),和若干子模块,每个子模块都有自己的pom.xml。这种结构有助于保持项目的清晰和有序。 2. 顶级父POM与子模块POM: - **...

    Maven常用命令 Maven Maven学习

    Maven常用命令 Maven Maven学习

    maven-聚合项目-springMVC

    【maven-聚合项目-springMVC】是一个基于Maven构建的Java Web项目,它采用了Spring MVC框架作为控制器层的核心技术。在这个项目中,我们不难看出开发者专注于演示Maven的聚合功能以及Spring MVC在应用开发中的作用,...

Global site tag (gtag.js) - Google Analytics