Maven 项目模板

news2025/4/17 7:14:19

Maven 项目模板

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

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

mvn archetype:generate

什么是 archetype?

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


使用项目模板

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

C:\MVN> mvn archetype:generate 

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

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 将询问原型的版本

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.coloradmin.cn/o/109572.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

终于有人把性能优化讲清楚了!阿里架构师推荐的Java性能权威指南

Java给大部分人的感觉就是慢&#xff0c;有严重的性能问题。其实程序慢的问题&#xff0c;与语言无关&#xff0c;与Java无关。Java应用的性能优化也是一个老生常谈的话题&#xff0c;但是只要我们深入的了解性能调优方法&#xff0c;走遍天下都不怕&#xff01; 大多数开发人…

mac系统M1pro芯片安装VMware Fusion虚拟机win11操作系统(原创详细版)

VMware22年11月份推出Fusion 13&#xff0c;这是Fusion虚拟软件的最新更新。它允许Mac用户操作虚拟机来运行非macOS操作系统&#xff0c;如Windows 11。 有了Fusion 13&#xff0c;英特尔和苹果芯片Mac用户可以访问Windows 11虚拟机。英特尔Mac提供对Windows 11的全面支持&…

webpack 构建脚手架

前言 1. 构建项目 2. 局部安装 3. webpack.config.js 4. 打包 css 文件 5. 打包 less 文件 6. 打包 vue 文件 7. loader 和 plugin 区别 8. 添加版权的插件 9. html-webpack-plugin 打包 html 的插件 10. 压缩文件 11. webpack-dev-server 搭建本地服务器 前言 本文记录 webpa…

基于鸽群算法改进的DELM预测 -附代码

鸽群算法改进的深度极限学习机DELM的回归预测 文章目录鸽群算法改进的深度极限学习机DELM的回归预测1.ELM原理2.深度极限学习机&#xff08;DELM&#xff09;原理3.鸽群算法4.鸽群算法改进DELM5.实验结果6.参考文献7.Matlab代码1.ELM原理 ELM基础原理请参考&#xff1a;https:…

自学编程的人成千上万,为什么坚持下来的没几个?

在互联网职位薪资水涨船高的现下&#xff0c;越来越多的人都对此跃跃欲试&#xff0c;想要通过学习进入这个新兴的朝阳行业。但或因为现下工作&#xff0c;或因为各种压力&#xff0c;多数人并不能果断投入&#xff0c;自学成了常见的学习方式&#xff01; 但是据数据显示&…

PDF翻译怎么操作?教你几个PDF翻译的技巧

当你在查阅国外资料的时候&#xff0c;有没有发现很多资料都是以PDF格式来呈现的&#xff1f;毕竟&#xff0c;PDF文件方便查阅也不易出现格式混乱的状态。但是&#xff0c;这对于英语基础不好的小伙伴就有一定的影响了&#xff0c;而且如果一字一字去翻译解释&#xff0c;那也…

linux安装php环境

linux安装php环境首先&#xff0c;打开终端并更新系统的软件包列表。运行以下命令然后安装 PHP。运行以下命令安装完成后&#xff0c;可以使用以下命令检查 PHP 的版本&#xff1a;如果您需要使用 PHP 的扩展&#xff0c;可以使用以下命令安装它们&#xff1a;例如&#xff0c;…

[2]MQTT基础知识

MQTT(消息队列遥测传输)是一个客户端服务端架构的发布/订阅模式的消息传输协议。 MQTT协议最初版本是在1999年建立的。该协议的发明人是的Andy Stanford-Clark和Arlen Nipper。 MQTT协议是当今世界上最受欢迎的物联网协议&#xff0c;广泛应用于车联网、智能家居、即时聊天应用…

自学Python学习经验分享

学编程语言有个小秘诀&#xff0c;直接上项目就是干&#xff0c;做完之后你就是Pythoner了。 不要怕没基础&#xff0c;边做边学边查&#xff0c;进步很快的。 因人而异&#xff0c;一周或一个月就能基本入门&#xff0c;当然也需要你百分百的投入。 以前我也觉得收集资料、钻…

一个新工具引发IT巨变:程序员在转行,不懂编程的人却成了程序员

编程一定需要代码吗&#xff1f;我看未必。 科技进步可谓日新月异&#xff0c;无代码开发在近几年&#xff0c;俨然被越来越多的人所熟知。这是一场解放码农的运动&#xff0c;让不懂编程的人也能进行软件开发。 我在发文前&#xff0c;看到了一则信息&#xff0c;更加坚定了…

【MySQL】MySQL初级笔记

MySQL1、初识MySQL(了解)1.1、为什么学习数据库1.2、什么是数据库1.3、什么是DBMS1.4、MySQL简介1.7 连接数据库1.8 基本操作2、操作数据库2.1、结构化查询语句分类2.2、数据库操作2.3、数据值和列类型数值类型字符串类型日期和时间型数值类型NULL值2.4、数据字段属性(重点)UnS…

SpringBoot配置文件的加载顺序

一、引言 如果我们了解SpringBoot配置文件的加载顺序&#xff0c;对项目的开发和部署会有很大的帮助。举个工作中的例子&#xff0c;我们的项目是微服务架构模式&#xff0c;用Nacos做注册中心&#xff08;可以配置每个微服务&#xff09;&#xff0c;所有服务请求需要通过网关…

解决PageHelper版本不匹配,结果可能全部返回问题

1.问题&#xff1a; 使用 pagehelper &#xff0c;如果和mybatis版本不匹配&#xff0c;就会出现返回结果错误问题&#xff0c;比如&#xff1a;本来想返回pageNum&#xff1a;1&#xff0c;pageSize:1的数据&#xff0c;但却是全部返回。自己的代码没问题的情况下&#xff0c…

无向图以及图的java代码实现

1. 图的定义 定义&#xff1a;图是由一组顶点和一组能够将两个顶点相连的边组成的 1.1特殊的图 自环&#xff1a;即一条连接一个顶点和其自身的边&#xff1b;平行边&#xff1a;连接同一对顶点的两条边&#xff1b; 1.2图的分类 按照连接两个顶点的边的不同&#xff0c;可…

含文档+PPT+源码等]精品基于SSM的图书管理系统[包运行成功]

博主介绍&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 项目名称 含文档PPT源码等]精品基于SSM的图书管理系统[包运行成功] 系统介绍 《基于SSM框架图书管理系统开发与设计》 该项目含有源码、配套开发软件、软件安…

Pytest用例运行及先后顺序

温馨提示 本篇约1600字&#xff0c;看完需3-5分钟&#xff0c;学习学半小时&#xff0c;加油&#xff01; 先看普通函数运行顺序 import pytestdef test_one():print("我是清安")def test_02():print("--02--")def test_a():print("--a--")de…

老生常谈的一个问题,转行学习编程,是自学还是报班

1、自学 a、优点&#xff1a; 1、自我分析问题和自我解决问题的能力比较的强&#xff1a; 自学要自己的找学习资料&#xff0c;学习要自己的摸索学习&#xff0c;学习中遇到的问题要自己去分析&#xff0c;自己去解决。 通过自学成功的人往往自我分析问题和自我解决问题的能…

Android实现戴口罩人脸检测和戴口罩识别(附Android源码)

Android实现戴口罩人脸检测和戴口罩识别(附Android源码) 目录 Android实现戴口罩人脸检测和戴口罩识别(附Android源码) 1.戴口罩识别的方法 &#xff08;1&#xff09;基于多类别目标检测的戴口罩识别方法 &#xff08;2&#xff09;基于人脸检测戴口罩分类识别方法 2.戴…

【Javassist】快速入门系列05 当有指定方法调用时替换方法调用的内容

系列文章目录 01 在方法体的开头或结尾插入代码 02 使用Javassist实现方法执行时间统计 03 使用Javassist实现方法异常处理 04 使用Javassist更改整个方法体 05 当有指定方法调用时替换方法调用的内容 文章目录系列文章目录前言引入Javassist jar包当有指定方法调用时替换方法…

1. 位1的个数

文章目录题目解法一&#xff1a;右移统计解题思路代码实现复杂度分析解法二&#xff1a;清除最低位解题思路代码实现复杂度分析解法三&#xff1a;分治解题思路代码实现复杂度分析解法四&#xff1a;JDK Integer.bitCount(int i)代码实现题目 编写一个函数&#xff0c;输入是一…