当前位置: 首页 > news >正文

HoRain云--Maven 项目模板

Maven 使用 archetype(原型) 来创建自定义的项目结构,形成 Maven 项目模板。

在前面章节我们学到 Maven 使用下面的命令来快速创建 java 项目:

mvn archetype:generate

什么是 archetype?

archetype 也就是原型,是一个 Maven 插件,准确说是一个项目模板,它的任务是根据模板创建一个项目结构。我们将使用 quickstart 原型插件创建一个简单的 java 应用程序。


使用项目模板

让我们打开命令控制台,跳转到 C:\> MVN 目录并执行以下 mvn 命令:

C:\MVN> mvn archetype:generate

Maven 将开始处理,并要求选择所需的原型:

[INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'archetype'. [INFO] ------------------------------------------------------------------- [INFO] Building Maven Default Project [INFO]task-segment: [archetype:generate] (aggregator-style) [INFO] ------------------------------------------------------------------- [INFO] Preparing archetype:generate ... 600: remote -> org.trailsframework:trails-archetype (-) 601: remote -> org.trailsframework:trails-secure-archetype (-) 602: remote -> org.tynamo:tynamo-archetype (-) 603: remote -> org.wicketstuff.scala:wicket-scala-archetype (-) 604: remote -> org.wicketstuff.scala:wicketstuff-scala-archetype Basic setup for a project that combines Scala and Wicket, depending on the Wicket-Scala project. Includes an example Specs test.) 605: remote -> org.wikbook:wikbook.archetype (-) 606: remote -> org.xaloon.archetype:xaloon-archetype-wicket-jpa-glassfish (-) 607: remote -> org.xaloon.archetype:xaloon-archetype-wicket-jpa-spring (-) 608: remote -> org.xwiki.commons:xwiki-commons-component-archetype (Make it easy to create a maven project for creating XWiki Components.) 609: remote -> org.xwiki.rendering:xwiki-rendering-archetype-macro (Make it easy to create a maven project for creating XWiki Rendering Macros.) 610: remote -> org.zkoss:zk-archetype-component (The ZK Component archetype) 611: remote -> org.zkoss:zk-archetype-webapp (The ZK wepapp archetype) 612: remote -> ru.circumflex:circumflex-archetype (-) 613: remote -> se.vgregion.javg.maven.archetypes:javg-minimal-archetype (-) 614: remote -> sk.seges.sesam:sesam-annotation-archetype (-) Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 203:

按下Enter选择默认选项 (203:maven-archetype-quickstart)。


Maven 将询问原型的版本

Choose org.apache.maven.archetypes:maven-archetype-quickstart version: 1: 1.0-alpha-1 2: 1.0-alpha-2 3: 1.0-alpha-3 4: 1.0-alpha-4 5: 1.0 6: 1.1 Choose a number: 6:

按下Enter选择默认选项 (6:maven-archetype-quickstart:1.1)

Maven 将询问项目细节。按要求输入项目细节。如果要使用默认值则直接按 Enter 键。你也可以输入自己的值。

Define value for property 'groupId': : com.companyname.insurance Define value for property 'artifactId': : health Define value for property 'version': 1.0-SNAPSHOT Define value for property 'package': com.companyname.insurance

Maven 将要求确认项目细节,按Enter或按 Y

Confirm properties configuration: groupId: com.companyname.insurance artifactId: health version: 1.0-SNAPSHOT package: com.companyname.insurance Y:

现在 Maven 将开始创建项目结构,显示如下:

[INFO] ----------------------------------------------------------------------- [INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1 [INFO] ----------------------------------------------------------------------- [INFO] Parameter: groupId, Value: com.companyname.insurance [INFO] Parameter: packageName, Value: com.companyname.insurance [INFO] Parameter: package, Value: com.companyname.insurance [INFO] Parameter: artifactId, Value: health [INFO] Parameter: basedir, Value: C:\MVN [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] project created from Old (1.x) Archetype in dir: C:\MVN\health [INFO] ----------------------------------------------------------------------- [INFO] BUILD SUCCESSFUL [INFO] ----------------------------------------------------------------------- [INFO] Total time: 4 minutes 12 seconds [INFO] Finished at: Fri Jul 13 11:10:12 IST 2012 [INFO] Final Memory: 20M/90M [INFO] -----------------------------------------------------------------------

创建的项目

现在转到 C:\ > MVN 目录。你会看到一个名为 health 的 java 应用程序项目,就像在项目创建的时候建立的 artifactId 名称一样。 Maven 将创建一个有标准目录布局的项目,如下所示:


创建 pom.xml

Maven 为项目自动生成一个 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.companyname.insurance</groupId> <artifactId>health</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>health</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>


App.java

Maven 会自动生成一个测试的 java 文件 App.java。

路径:C:\MVN\consumerBanking\src\main\java\com\companyname\bank

package com.companyname.insurance; /** * Hello world! * */ public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); } }


AppTest.java

Maven 会自动生成一个 java 文件 AppTest.java。

路径为:C:\MVN\consumerBanking\src\test\java\com\companyname\bank

package com.companyname.insurance; 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 ); } }

就这样。现在你可以看到 Maven 的强大之处。你可以用 maven 简单的命令创建任何类型的项目,并且可以启动您的开发。

http://www.jsqmd.com/news/1379781/

相关文章:

  • DSL到Vue代码转换:构建低代码平台核心引擎的设计与实现
  • 适合企业行政做会议纪要整理的2026年5款会议总结工具测评
  • 新乡的朋友看过来!查档案存放地很简单,教你一招,足不出户立马查清! - 实时传讯
  • 【C++算法】二分查找 -> 入门
  • 2026 企业级地址解析服务商选型指南
  • 基于OIDC实现GitHub Actions免密安全部署至阿里云OSS
  • 3步搞定抖音无水印下载:开源douyin_downloader工具终极指南
  • 数据血缘落地实战:从技术选型到运营闭环的完整指南
  • 2026年最新测厚仪/电磁超声检测设备/脉冲涡流检测设备生产厂家核心竞争力解构 - 青岛科瑞富有潜力 - 小范同学a
  • 手把手教你学 Simulink—— 基于扩展卡尔曼滤波(EKF)的整流器状态估计与故障预测仿真
  • 当 human in the loop 变成“闭着眼睛点确认”,企业Agent 安全还能靠谁?
  • 爬虫怎么批量采集完成任务
  • NS-Scope:释放泰克TDS示波器潜力,实现高精度数据采集与自动化测试
  • 500元预算下的AI工具栈实战:Serverless与LLM API低成本应用指南
  • MFC开发实战:CZip与CUnzip类实现ZIP文件压缩解压
  • 游戏资源逆向工程:从解包到4K渲染的技术实践与美术资产分析
  • 2026 涂胶机厂家推荐哪家好?高口碑品牌汇总 - 商业新知
  • C++ enable_shared_from_this 原理详解与安全使用指南
  • 用身份证二要素核验接口过一道真人关(C# 实战)
  • 多专家辩论复盘法:突破单一视角,提升决策质量
  • 2026年苏州无锡打印机租赁与复印机维修,设备故障怎么处理? - LYL仔仔
  • 【拯救HMI】:自动化对外输出的壁垒突破:标准认证与技术适配的双重路径
  • 为什么显卡内存检测如此重要?memtest_vulkan为你揭示硬件真相
  • 一个 NoSuchMethodError 查了 4 小时:双亲委派‘先问爹’的机制,让新 jar 永远赢不了老 jar
  • 软件开发工程化 · 体系篇:工程化的五个维度——从规范到交付
  • 落地还原度实测:2026杭州3家别墅装修服务商对比报告 - 互联网科技品牌测评
  • C语言控制结构原理与性能优化实战
  • RedisDesktopManager Windows版:告别命令行,5分钟开启Redis可视化管理新时代
  • 车载以太网(2)-davinci之ARP协议
  • Xγ剂量率仪国产厂家推荐|恒美智造辐射巡检仪国内头部品牌盘点 - 专业仪器测评品牌推荐