首页 > 其他分享 >如何通过命令行创建一个Maven多模块项目

如何通过命令行创建一个Maven多模块项目

时间:2024-11-24 19:32:56浏览次数:10  
标签:INFO web 命令行 项目 blogger Maven 模块 junit

本教程将引导您使用命令行创建一个简单的Maven多模块项目,以一个博客应用为例,该应用包含一个父项目和三个子模块:blogger-coreblogger-commonblogger-web

我们将使用最新的Java版本和依赖项。

准备工作

确保您的系统已安装以下软件:

  • JDK 21
  • Maven
  • 文本编辑器或IDE(如Eclipse)

第一步:创建父项目

  1. 打开命令行终端,运行以下命令来创建父Maven项目:

    mvn archetype:generate -DgroupId=com.companyname.blogger -DartifactId=blogger -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
    
  2. 构建成功后,打开生成的pom.xml文件,并将<packaging>标签的值改为pom,声明该项目为父项目。

    <packaging>pom</packaging>
    
  3. <modules>标签下添加子模块:

    <modules>
        <module>blogger-core</module>
        <module>blogger-common</module>
        <module>blogger-web</module>
    </modules>
    

第二步:创建子模块

  1. 切换到父项目的目录:

    cd blogger
    
  2. 创建blogger-core模块:

    mvn archetype:generate -DgroupId=com.companyname.blogger -DartifactId=blogger-core -DinteractiveMode=false
    
  3. 创建blogger-common模块:

    mvn archetype:generate -DgroupId=com.companyname.blogger -DartifactId=blogger-common -DinteractiveMode=false
    
  4. 创建blogger-web模块(Web应用程序,打包为WAR):

    mvn archetype:generate -DgroupId=com.companyname.blogger -DartifactId=blogger-web -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
    

第三步:更新子模块的pom.xml

  1. blogger-core模块:将<packaging>设置为jar,并添加测试依赖项。

    <packaging>jar</packaging>
    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.9.3</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
  2. blogger-common模块:同样将<packaging>设置为jar,并添加测试依赖项。

    <packaging>jar</packaging>
    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.9.3</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
  3. blogger-web模块:将<packaging>设置为war,并添加Servlet API依赖项。

    <packaging>war</packaging>
    <dependencies>
        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <version>6.0.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.9.3</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>blogger-web</finalName>
    </build>
    

第四步:构建多模块项目

  1. 返回父项目的目录,运行以下命令构建整个多模块项目:

    mvn clean install
    
  2. 构建成功后,您将看到类似于以下的输出:

    [INFO] Reactor Summary:
    [INFO] 
    [INFO] blogger ................................ SUCCESS [  0.746 s]
    [INFO] blogger-core ........................... SUCCESS [  5.727 s]
    [INFO] blogger-common ......................... SUCCESS [  1.775 s]
    [INFO] blogger-web ............................ SUCCESS [  0.809 s]
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    

第五步:在IDE中导入项目

选择IDEA或Eclipse导入项目即可。

总结

通过本教程,您学会了如何使用命令行创建一个Maven多模块项目。

Maven的多模块功能有助于高效管理复杂项目,通过逻辑分离关注点和依赖关系来简化开发过程。

标签:INFO,web,命令行,项目,blogger,Maven,模块,junit
From: https://blog.csdn.net/woshichenpi/article/details/143981861

相关文章

  • 使用命令行创建一个简单的 Maven Web 应用程序
    本教程将指导您通过命令行创建一个简单的MavenWeb应用程序。我们将使用最新版本的Java和依赖项。本指南将带您完成项目设置、添加必要依赖项、配置Web应用程序并运行它的整个过程。先决条件已安装JDK21已安装Maven一个Web浏览器第一步:生成Maven项目首先......
  • Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:exec (default-c
    idea下的maven项目执行test目录下的main方法报错Failedtoexecutegoalorg.codehaus.mojo:exec-maven-plugin:1.6.0:exec(default-cli)同时报错描述中还有错误找不到主类的提示。但是查看target/test-classes目录下的字节码文件确实有生成也能正常运行。解决办法这个的......
  • Windows 下命令行下载文件的方法
    在Windows操作系统中,默认情况下并没有内置curl或wget命令行工具,但你仍然可以通过其他方法使用命令行下载文件。以下是一些可行的替代方案:1. 使用PowerShell下载文件Windows提供了PowerShell,它内置了一个非常强大的Invoke-WebRequest命令,可以用来下载文件。下面是如......
  • Windows 的复制和粘贴功能是基于 文件系统操作(如 CopyFile 或 MoveFile API)来实现的,而
    在Windows操作系统中,复制粘贴功能和robocopy(RobustFileCopy)技术的使用场景和目标不同,这也是为什么微软在日常用户界面中选择使用传统的复制粘贴(Copy-Paste)功能,而不是直接依赖robocopy技术的原因。下面我将从几个关键角度进行详细分析。1. 目标用户与应用场景不同复制粘......
  • Java学习笔记--对象数组,方法参数,命令行参数,快速生成方法
    目录一,对象数组Personp=newPerson();二,方法参数1.基本数据类型做方法参数传递2.引用数据类型做方法参数传递三,命令行参数四,快速生成方法1.快速生成方法2.快速将一段代码抽取到一个方法中 一,对象数组Person[]arr=newPerson[3];Personp=newPerson();......
  • (即插即用模块-Attention部分) 十七、(CVPR 2022) HiLo Attention
    文章目录1、HiLoAttention2、LITv23、代码实现paper:FastVisionTransformerswithHiLoAttentionCode:https://github.com/ziplab/LITv21、HiLoAttention论文中指出多头自注意力(MSA)在高分辨率图像上存在巨大的计算开销。为解决这一问题,本文引入一种Hi......
  • SpringCloudAlibaba系列---【maven如何实现多继承?】
    1.问题当我们使用SpringCloudAlibaba创建微服务的时候,我们的父pom工程的parent肯定是springboot-parent,但是,我们又要使用spring-cloud-alibaba-dependencies作为版本管理,parent肯定只能有一个,这时候该怎么办呢?2.解决方案使用dependencyManagement的pom和import即可,例如下面的sp......
  • MM模块-专题方案-跨公司STO移动类型确定逻辑(交货单类型NLCC+项目类别NLC+计划行类别N
    业务说明:跨公司STO移动类型确定过程。STO移动类型确定逻辑:配置1:定义STO交货类型(交货类别:NLCC)配置2:在交货时定义项目类别确定(项目类别:NLC)配置3:分配计划行类别(SD模块)(计划行类别:NC)配置4:定义计划行类别(SD模块)(计划行类别NC对应移动类型:643或645)配置1:定义STO交货类型(Delive......
  • selenium模块,web自动化,获取标签页
    1.获取标签页数lables=test.window_handlesprint(lables) 2.切换标签页lables=test.window_handlestest.switch_to.window(lables[2]) 3.警告框alert元素交互(页面弹出框)#关闭弹窗test.switch_to.alert.accept()#获取弹窗内容st=test.switch_to.alert.......
  • Simulink中Model模块的模型保护功能
    在开发工作过程中,用户为想要知道供应商的开发能力,想要供应商的模型进行测试。面对如此要求,为了能够尽快拿到定点项目,供应商会选择一小块算法或是模型以黑盒的形式供客户测试。Simulink的Model模块除了具有模块引用的功能之外,还具有模型保护的功能。今天主要是以一个简单的实例......