首页 > 其他分享 >maven - archetype - quickstart 和maven - archetype - archetype 和maven - archetype - webapp 区别是什么?

maven - archetype - quickstart 和maven - archetype - archetype 和maven - archetype - webapp 区别是什么?

时间:2024-12-15 10:53:41浏览次数:9  
标签:xml Web quickstart src maven main archetype

maven - archetype - quickstart 和maven - archetype - archetype区别

  1. 功能重点不同

    • maven - archetype - quickstart:主要功能是快速搭建一个简单的、可运行的 Java 应用程序框架。它的重点在于让开发者能够迅速开始编写 Java 代码,构建一个基本的、能够独立运行的程序,例如一个简单的命令行工具或者小型的应用程序。
    • maven - archetype - archetype:重点在于创建一个可以作为其他 Maven 项目模板的项目。它不是直接用于构建普通的 Java 应用程序,而是用于构建一个模板,这个模板可以被其他开发者用来创建具有特定结构和功能的 Maven 项目。
  2. 项目结构差异

    • maven - archetype - quickstart
      • 结构相对简单直接。有src/main/java用于存放主代码,src/test/java用于存放测试代码。典型的代码布局如一个简单的App类及其对应的AppTest类。例如,在src/main/java中的App类可能就是一个简单的打印 “Hello World” 的程序,代码如下:
package com.mycompany.app;
public class App {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
  • 资源文件方面,只提供了基本的 Java 代码结构所需的目录,如src/main/resourcessrc/test/resources,但通常没有复杂的资源文件配置。
  • maven - archetype - archetype
    • 结构更复杂。它有专门用于模板相关文件的目录,如src/main/resources/META - INF/maven/archetype - resources,这些目录中的文件会在使用该模板创建新的 Maven 项目时作为模板文件被复制到新的项目中。
    • 还会有用于定义模板参数的文件,如src/main/resources/META - INF/maven/archetype - metadata.xml,用于指定模板的各种参数,包括参数名称、默认值、是否必填等信息。
  1. pom.xml 配置差异
    • maven - archetype - quickstart
      • pom.xml相对简洁,主要包含项目的基本信息,如groupIdartifactIdversion等坐标信息。也会包含一些基本的构建配置,如编译器插件配置等,确保 Java 代码能够正常编译。例如,一个简单的pom.xml可能如下:
<?xml version="1.0" encoding="UTF-8"?>
<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.example</groupId>
    <artifactId>my - maven - project</artifactId>
    <version>1.0 - SNAPSHOT</version>
    <name>my - maven - project</name>
    <description>My first Maven project</description>
    <dependencies>
        <!-- 可能会有一些基本的测试依赖 -->
    </dependencies>
</project>
  • maven - archetype - archetype
    • pom.xml更加复杂,除了包含基本的项目信息外,还会有大量与模板制作和发布相关的配置。例如,会包含插件配置用于将模板打包成archetype - catalog.xml文件,以便在 Maven 仓库中发布和共享。还会有配置用于处理模板的参数化,使得使用该模板创建新的 Maven 项目时能够根据用户输入的参数来定制项目结构。

所以,maven - archetype - quickstartmaven - archetype - archetype是不一样的,它们在功能、项目结构和pom.xml配置等方面都存在明显的差异。

maven - archetype - quickstart 和maven - archetype - webapp区别

  1. 项目类型与用途

    • maven - archetype - quickstart
      • 主要用于创建简单的 Java 应用程序。通常是那种在命令行环境下运行的程序,例如一些工具类程序、简单的算法演示程序等。这种项目的重点在于 Java 代码的编写和执行,不涉及 Web 相关的内容。
    • maven - archetype - webapp
      • 用于创建基于 Java 的 Web 应用程序。它是构建 Web 项目的基础模板,适合开发各种类型的 Web 应用,如网站、Web 服务等。这些 Web 应用会通过浏览器或者其他 HTTP 客户端来访问。
  2. 项目结构差异

    • maven - archetype - quickstart
      • 基本的项目结构包括src/main/java(存放主 Java 代码)、src/test/java(存放测试 Java 代码)、src/main/resources(存放主代码所需的资源文件)和src/test/resources(存放测试代码所需的资源文件)。例如,在src/main/java中有一个简单的 Java 类,可能是一个打印 “Hello World” 的类,如下所示:
package com.mycompany.app;
public class App {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
  • 没有 Web 相关的目录和文件结构,如 Web 页面文件(.html.jsp等)的存放位置、配置文件(如web.xml)等。
  • maven - archetype - webapp
    • 除了包含类似maven - archetype - quickstart中的src/main/javasrc/test/java等目录用于存放 Java 代码外,还有一些 Web 特定的目录。
    • 它有src/main/webapp目录,用于存放 Web 相关的文件。在这个目录下通常会有WEB - INF目录,WEB - INF目录中有web.xml文件(在 Servlet 3.0 + 规范下,web.xml可能不是必需的,但仍然是常见的配置文件),用于配置 Web 应用的部署描述符,如 Servlet、Filter 和 Listener 的配置等。同时,src/main/webapp目录还可以存放 Web 页面文件,如index.html.jsp文件等,这些文件是用户通过浏览器访问 Web 应用时直接看到的内容。例如,一个简单的index.html文件可能如下:
<!DOCTYPE html>
<html>
<head>
    <title>My Web App</title>
</head>
<body>
    <h1>Welcome to my web app!</h1>
</body>
</html>
  1. pom.xml 配置差异
    • maven - archetype - quickstart
      • pom.xml配置相对简单,主要关注 Java 应用程序的构建。它包含基本的项目坐标信息(groupIdartifactIdversion),以及可能的一些基本依赖,如用于测试的 JUnit 等。例如:
<?xml version="1.0" encoding="UTF-8"?>
<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.example</groupId>
    <artifactId>my - maven - project</artifactId>
    <version>1.0 - SNAPSHOT</version>
    <name>my - maven - project</name>
    <description>My first Maven project</description>
    <dependencies>
        <!-- 可能包含基本的测试依赖,如JUnit -->
    </dependencies>
</project>
  • maven - archetype - webapp
    • pom.xml配置更加复杂,因为它需要考虑 Web 应用的构建和部署。除了基本的项目坐标信息外,还会包含与 Web 相关的插件和依赖。
    • 例如,它会包含打包成war(Web Application Archive)文件的配置,这是 Web 应用部署的常见格式。同时,可能会包含与 Web 服务器(如 Tomcat)兼容的依赖,如 Servlet API 等。以下是一个简化的pom.xml示例:
<?xml version="1.0" encoding="UTF-8"?>
<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.example</groupId>
    <artifactId>my - web - app</artifactId>
    <version>1.0 - SNAPSHOT</version>
    <packaging>war</packageing>
    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet - api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven - war - plugin</artifactId>
                <version>3.3.2</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

在这个pom.xml示例中,<packaging>标签设置为war,表示要将项目打包成war文件。<dependencies>部分包含了 Servlet API 的依赖,<scope>provided</scope>表示这个依赖在运行时由 Web 服务器提供。<build>部分包含了maven - war - plugin的配置,用于正确地打包war文件。

标签:xml,Web,quickstart,src,maven,main,archetype
From: https://www.cnblogs.com/javaxubo/p/18607755

相关文章

  • maven docker-maven-plugin 发布docker 20241214
    1、docker开启远程访问 端口 2375  docker主机:192.168.177.128vi/usr/lib/systemd/system/docker.service#修改ExecStart这行ExecStart=/usr/bin/dockerd-Htcp://0.0.0.0:2375 #重新加载配置文件[root@localhost~]#systemctldaemon-reload#重启服务[......
  • Cannot access alimaven
    报错信息Cannotaccessalimaven(http://maven.aliyun.com/nexus/content/groups/public/)inofflinemode问题原因这个错误信息表明Maven处于离线模式,并且无法访问阿里云Maven仓库(http://maven.aliyun.com/nexus/content/groups/public/)。检查Maven配置文件中的离线......
  • Maven概述安装 常用指令 Maven-IDEA集成
    一.Maven概述Maven是一个项目管理工具,具备以下几个关键要素:包含内容:包含一个对象模型、一组标准集合、一个依赖管理系统,以及用来运行定义在生命周期阶段中插件目标和逻辑。核心功能:能合理叙述项目间的依赖关系,也就是在项目为Maven项目的前提下,通过配置pom.xml文件来获......
  • Springboot+maven+druid+mybatis-plus多数据源
    Springboot版本:2.3.12.RELEASE1.maven依赖<!--druid连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.22&l......
  • Maven学习(依赖版本维护、依赖传递、解决Maven依赖冲突的3种方式)
    目录一、Maven的依赖版本维护。(1)为什么需要依赖版本维护?(2)依赖统一管理的具体操作步骤。第一步。在pom.xml文件中使用标签定义jar包的版本。第二步。在的对应jar的中使用"${}"引入上面定义好的版本。二、Maven的依赖传递。(1)什么是Maven依赖传递?(2)Maven依赖传递引发的问......
  • 【Java开发】maven概述:构建、依赖管理和项目生命周期
    1.项目开发中的问题1、我的项目依赖一些jar包,我把他们放在哪里?直接拷贝到项目的lib文件夹中?如果我开发的第二个项目还是需要上面的那些jar包,再把它们复制到我当前项目lib中?那如果现在是第三次了,再复制一次吗?以上操作会出现的问题:重复存放jar包;容易出现jar包冲突;手动拷贝jar......
  • Maven、mybatis框架
    一、Maven介绍1.概念:Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。2.为啥使用maven:之前项目中需要引入大量的jar包。这些jar从网上下载,可能下载地址不同意。这些jar之间可能存在冲突。我们应该有一个软件,帮你完成jar的下......
  • Maven项目管理工具详解与应用指南
    1.引子  1.什么是maven?  2.为什么使用maven?  3.如何安装maven软件  4.idea关联本地maven?  5.idea创建maven结构的项目。2.什么是maven?  Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件......
  • maven仓库配置,Tomcat配置,javaweb项目创建
    把maven安装到一个没有中文目录下的文件夹中maven官网下载地址:下载地址:DownloadApacheMaven–Maven配置仓库进入maven文件夹在maven文件夹中创建仓库文件夹(注意不要中文)然后进入conf文件夹中的setting.xml文件打开,找到以下位置添加以下文件,配置阿里云私服<mirror>......
  • 基于Docker容器搭建maven私服 nexus
    1、docker执行将容器内部/var/nexus-data目录挂载到主机/data/nexus-data目录。dockerrun-d-p8081:8081--namenexus-v/data/nexus-data:/var/nexus-data--restart=always-e"INSTALL4J_ADD_VM_PARAMS=-Xms128m-Xmx512m-XX:MaxDirectMemorySize=512m-Djava.util.p......