实践 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,技术开发学习类稳定档案顶顶顶顶
此文章包含Maven介绍与安装、Maven在工程开发中的相关配置、Maven如何进行工程测试、Maven的以来冲突调节原则、Maven的聚合开发,以及用一个简单的实操案例对Maven进行练习。 适用于任何学习项目管理与SSM框架中,...
maven学习笔记maven学习笔记maven学习笔记
maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装...
Maven常用命令 Maven Maven学习
不习惯于maven项目开发,想使用eclipse的普通web项目。想借鉴别人的maven项目,但是自己使用的却不熟悉maven的原理等等,但是需要懂一点maven的目录架构。
《Maven2使用项目开发规范说明》,图文并茂,详细介绍了使用 Maven2 开发一个规范项目的流程。 目录: 1. 环境配置 3 1.1. 配置Maven2 3 1.2. 配置Eclipse环境变量MIA_LIB 4 1.3. 安装Maven2 的eclipse plugin 4 2. ...
空白的,经过单元测试的,mavenWeb项目
maven学习文档和实践操作
基于spring boot + maven + opencv 实现的图像深度学习Demo项目,包含车牌识别、人脸识别、证件识别等功能,贯穿样本处理、模型训练、图像处理、对象检测、对象识别等技术点。 基于spring boot + maven + opencv ...
java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一...
何为Maven 构建,依赖管理,项目信息聚合 Maven核心概念 坐标,依赖,仓库,生命周期,插件 Maven最佳实践 创建、打包、发布、版本管理 项目实战 Nexus(Todo…) M2eclipse(Todo…)
Maven 教程:基础篇——尚硅谷学习笔记 2022年
Eclipse新建和部署maven项目,每一步都有详细的截图
Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven...
maven入门,maven环境的搭建以及maven配置到eclipse以及pom.xml文件配置等
Maven学习文档
maven搭建web项目hello world
springboot(web项目,非maven)