实践 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
类时,会打印出下列输出:
回页首
使用 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 生成的目录和文件
您只需将 NumOps.java、Operation.java 和 AddOps.java 文件移到 App.java 的位置,并移除 App.java。在下一部分中,将做出一些改变来定制生成的 pom.xm。
分享到:
相关推荐
项目管理利器——maven,技术开发学习类稳定档案顶顶顶顶
在IT行业中,Maven是一个广泛使用的构建自动化工具,主要用于Java项目的管理。它的核心功能包括项目的构建、依赖管理和项目信息管理。然而,对于习惯于使用Eclipse IDE开发Web项目的开发者来说,Maven项目可能会显得...
实践操作是学习Maven的关键,可以创建一个新的Maven项目,配置POM文件,添加必要的依赖,编写源代码和测试代码,然后通过执行上述命令,体验Maven的整个构建过程。 通过深入理解和实践,开发者可以充分利用Maven的...
Maven还是一个依赖管理和项目信息管理工具。通过Maven的中央仓库,可以轻松解决依赖管理中常见的问题,如版本冲突、依赖臃肿等。此外,Maven还提供了一系列插件,可以帮助开发者生成各种类型的文档和报告,从而更好...
Maven是由Apache软件基金会开发的一个项目管理工具,它通过一个统一的构建过程,简化了Java项目的构建、依赖管理和文档生成。Maven使用了一个基于XML的项目对象模型(Project Object Model,POM),来描述项目信息...
**Maven 2 5分钟学习教程(中文)——官方文档翻译** Maven是一个强大的Java项目管理工具,它简化了构建、依赖管理和项目生命周期的管理。这篇5分钟学习教程是Maven 2官方文档的中文翻译,旨在帮助初学者快速理解和...
在本文中,我们将基于maven创建一个web项目,首先我们需要搭建maven环境,包括安装Myeclipse2013、Tomcat8.0、Jdk1.8和apache-maven-3.3.9。然后,我们需要配置jdk和maven的环境变量,包括设置JAVA_HOME和MAVEN_HOME...
**Maven教程:基础篇——尚硅谷学习笔记 2022年** Maven是一个强大的Java项目管理和构建工具,由Apache软件基金会开发。它通过提供一个标准的项目对象模型(Project Object Model,POM)来简化项目的构建过程,并...
本教程将指导您使用 IDEA 创建一个 Maven Web 项目,从安装 Maven 到配置 Maven 环境、创建 Maven 工程、pom.xml 文件配置、依赖管理等。 1. 安装 Maven 在 IDEA 中使用 Maven 之前,需要先安装 Maven。在 Maven ...
本案例“第一个maven工程案例”旨在帮助初学者快速理解并掌握Maven的基本用法。下面将详细阐述Maven工程的创建、配置以及相关知识点。 1. **Maven工程结构** Maven遵循约定优于配置的原则,一个标准的Maven工程...
本资源包是为初学者和有经验的开发者准备的一系列Maven学习资料,旨在帮助你更好地理解和掌握Maven的核心功能和最佳实践。 **官方文档:apache-maven** Apache Maven的官方文档是学习Maven的首选资源。这个文档...
1. `index.jsp`:这是Web应用的主页面,通常用作入口点,展示给用户的第一界面。JSP(JavaServer Pages)是动态网页技术,允许开发者在HTML中嵌入Java代码,实现服务器端的动态渲染。 2. `META-INF`:这个目录包含...
在IT行业中,Maven是一个非常重要的构建工具,尤其在Java开发领域中被广泛使用。它通过项目对象模型(Project Object Model, POM)来管理项目的依赖、构建过程以及配置信息,极大地简化了项目的构建和管理工作。本...
总的来说,这个“一个简单的maven web 项目”是一个基础的学习平台,涵盖了Maven的使用、Java Web开发的基础知识,以及项目组织结构的理解。初学者可以通过这个项目深入了解Maven的配置,实践JSP和Servlet的开发,...
Apache Maven是一个项目管理和综合工具,它可以帮助开发者管理项目构建、报告、依赖关系等。以下是maven的安装步骤: 1. 访问Apache官网(http://maven.apache.org/download.cgi)下载最新版的maven安装包。 2. 解...
Maven是Java开发中的一个项目管理和综合工具,而MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。 **Maven详解:** Maven是Apache软件基金会开发的一个项目管理工具,主要用于构建、管理和...
Maven多模块项目通常遵循一个标准的目录结构,包括一个顶级父 pom.xml(如test-hd-parent),和若干子模块,每个子模块都有自己的pom.xml。这种结构有助于保持项目的清晰和有序。 2. 顶级父POM与子模块POM: - **...
Maven常用命令 Maven Maven学习
【maven-聚合项目-springMVC】是一个基于Maven构建的Java Web项目,它采用了Spring MVC框架作为控制器层的核心技术。在这个项目中,我们不难看出开发者专注于演示Maven的聚合功能以及Spring MVC在应用开发中的作用,...