首页 > 编程语言 >Maven 命令行构建 Java 项目

Maven 命令行构建 Java 项目

时间:2023-09-23 14:01:08浏览次数:63  
标签:INFO maven Java Maven 命令行 apache mvnw archetype

Maven 命令行构建 Java 项目

(22条消息) 使用Maven构建SpringBoot项目_Amazing_time的博客-CSDN博客_如何生成springboot项目的mvn构建命令

xml - 在 Spring-Boot Intro 之后, "Unable to find a suitable main class, please add a ' mainClass' 属性" - IT工具网 (coder.work)

(22条消息) Spring Boot 学习笔记 3 : mvn spring-boot:run_SmileorSilence的博客-CSDN博客_spring-boot:run

springboot命令行启动的方法详解 - 第一PHP社区 (php1.cn)

(37条消息) maven常用命令大全(附详细解释)_mvn命令详解_good_good_xiu的博客-CSDN博客


  • 使用命令生成Maven工程

    mvn archetype:generate \
    	-DgroupId=com.project \
    	-DartifactId=example \
    	-DarchetypeArtifactId=maven-archetype-quickstart \
    	-DinteractiveMode=false
    

    参数说明:

    • -DgroupId=com.project:组 ID

    • -DartifactId=example:项目名称,maven会根据这个名称在当前目录下新建一个名为该名称的目录用于建立项目

    • -DarchetypeArtifactId:项目原型,使用哪种原型来创建项目的初始结构,在这里,我们先使用maven-archetype-quickstart创建一个简单的 Java 应用

    • -DinteractiveMode=false :是否已交互模式进行,如果是false的话就会采用默认设置建立项目

  • mvn archetype:generate​ 操作案例:

    $ mvn archetype:generate
    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------< org.apache.maven:standalone-pom >-------------------
    [INFO] Building Maven Stub Project (No POM) 1
    [INFO] --------------------------------[ pom ]---------------------------------
    [INFO]
    [INFO] >>> maven-archetype-plugin:3.2.1:generate (default-cli) > generate-sources @ standalone-pom >>>
    [INFO]
    [INFO] <<< maven-archetype-plugin:3.2.1:generate (default-cli) < generate-sources @ standalone-pom <<<
    [INFO]
    [INFO]
    [INFO] --- maven-archetype-plugin:3.2.1:generate (default-cli) @ standalone-pom ---
    [INFO] Generating project in Interactive mode
    [WARNING] No archetype found in remote catalog. Defaulting to internal catalog
    [INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
    Choose archetype:
    1: internal -> org.apache.maven.archetypes:maven-archetype-archetype (An archetype which contains a sample archetype.)
    2: internal -> org.apache.maven.archetypes:maven-archetype-j2ee-simple (An archetype which contains a simplifed sample J2EE application.)
    3: internal -> org.apache.maven.archetypes:maven-archetype-plugin (An archetype which contains a sample Maven plugin.)
    4: internal -> org.apache.maven.archetypes:maven-archetype-plugin-site (An archetype which contains a sample Maven plugin site.
          This archetype can be layered upon an existing Maven plugin project.)
    5: internal -> org.apache.maven.archetypes:maven-archetype-portlet (An archetype which contains a sample JSR-268 Portlet.)
    6: internal -> org.apache.maven.archetypes:maven-archetype-profiles ()
    7: internal -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
    8: internal -> org.apache.maven.archetypes:maven-archetype-site (An archetype which contains a sample Maven site which demonstrates
          some of the supported document types like APT, XDoc, and FML and demonstrates how
          to i18n your site. This archetype can be layered upon an existing Maven project.)
    9: internal -> org.apache.maven.archetypes:maven-archetype-site-simple (An archetype which contains a sample Maven site.)
    10: internal -> org.apache.maven.archetypes:maven-archetype-webapp (An archetype which contains a sample Maven Webapp project.)
    Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 7: # 直接回车,使用默认值。
    Define value for property 'groupId': com.atguigu.maven # 设置组 ID
    Define value for property 'artifactId': pro01-maven-java # 设置项目名称
    Define value for property 'version' 1.0-SNAPSHOT: : # 直接回车,使用默认值。
    Define value for property 'package' com.atguigu.maven: : # 直接回车,使用默认值。
    Confirm properties configuration:
    groupId: com.atguigu.maven
    artifactId: pro01-maven-java
    version: 1.0-SNAPSHOT
    package: com.atguigu.maven
     Y: : # 直接回车,表示确认。如果,前面输入错误,想要重新输入,则输入 N 在回车。
    [INFO] ----------------------------------------------------------------------------
    [INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1
    [INFO] ----------------------------------------------------------------------------
    [INFO] Parameter: basedir, Value: D:\.github\.dome\maven
    [INFO] Parameter: package, Value: com.atguigu.maven
    [INFO] Parameter: groupId, Value: com.atguigu.maven
    [INFO] Parameter: artifactId, Value: pro01-maven-java
    [INFO] Parameter: packageName, Value: com.atguigu.maven
    [INFO] Parameter: version, Value: 1.0-SNAPSHOT
    [INFO] project created from Old (1.x) Archetype in dir: D:\.github\.dome\maven\pro01-maven-java
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  01:16 min
    [INFO] Finished at: 2023-01-08T14:15:53+08:00
    [INFO] ------------------------------------------------------------------------
    
  • 常用打包命令 mvnw​或mvn

    ./mvnw clean package -Dmaven.test.skip=true			# 跳过单测打包
    ./mvnw clean install -Dmaven.test.skip=true			# 跳过单测打包,并把打好的包上传到本地仓库
    ./mvnw clean deploy -Dmaven.test.skip=true			# 跳过单测打包,并把打好的包上传到远程仓库
    ./mvnw -v 							# 查看版本
    ./mvnw archetype:create 					# 创建 Maven 项目
    ./mvnw compile 							# 编译源代码
    ./mvnw test-compile 						# 编译测试代码
    ./mvnw test 							# 运行应用程序中的单元测试
    ./mvnw site 							# 生成项目相关信息的网站
    ./mvnw package 							# 依据项目生成 jar 文件
    ./mvnw install 							# 在本地 Repository 中安装 jar
    ./mvnw -Dmaven.test.skip=true 					# 忽略测试文档编译
    ./mvnw clean 							# 清除目标目录中的生成结果
    ./mvnw clean compile 						# 将.java类编译为.class文件
    ./mvnw clean package 						# 进行打包
    ./mvnw clean test 						# 执行单元测试
    ./mvnw clean deploy 						# 部署到版本仓库
    ./mvnw clean install 						# 使其他项目使用这个jar,会安装到maven本地仓库中
    ./mvnw archetype:generate 					# 创建项目架构
    ./mvnw dependency:list 						# 查看已解析依赖
    ./mvnw dependency:tree com.xx.xxx 				# 看到依赖树
    ./mvnw dependency:tree						# 命令解决jar包冲突
    ./mvnw dependency:analyze 					# 查看依赖的工具
    ./mvnw help:system 						# 从中央仓库下载文件至本地仓库
    ./mvnw help:active-profiles 					# 查看当前激活的profiles
    ./mvnw help:all-profiles 					# 查看所有profiles
    ./mvnw help:effective -pom 					# 查看完整的pom信息
    

标签:INFO,maven,Java,Maven,命令行,apache,mvnw,archetype
From: https://www.cnblogs.com/liuzonglin/p/17724317.html

相关文章

  • 无涯教程-JavaScript - MAXIFS函数
    描述MAXIFS函数返回由一组给定条件或条件指定的单元格中的最大值。Excel2016中已添加此功能。语法MAXIFS(max_range,criteria_range1,criteria1,[criteria_range2,criteria2],...)争论Argument描述Required/Optionalmax_rangeTheactualrangeofcellsinwh......
  • Java与MySQL的数据加密与解密:保障数据安全
    Java与MySQL的数据加密与解密是保障数据安全的重要手段。数据加密可以有效地防止敏感数据在存储和传输过程中被未经授权的人访问和篡改,而数据解密则是在需要使用加密数据时对其进行还原。下面将详细介绍如何在Java与MySQL中实现数据加密与解密来保障数据安全。一、数据加密方法1、......
  • 解决IntelliJ IDEA执行maven打包,执行java -jar命令提示jar中没有主清单属性
    问题场景IDEA执行mvncleanpackage-DskipTest=true命令或者借助工具的Maven菜单进行打包操作,然后执行java-jarapp.jar命令后,提示jar中没有主清单属性D:\WorkSpace\demo\target>java-jardemo-SNAPSHOT.jardemo-SNAPSHOT.jar中没有主清单属性原因分析这个错误通常是......
  • 无涯教程-JavaScript - MAXA函数
    描述MAXA函数返回参数列表中的最大值。语法MAXA(value1,[value2]...)争论Argument描述Required/OptionalValue1Thefirstnumberargumentforwhichyouwanttofindthelargestvalue.RequiredValue2...Numberarguments2to255forwhichyouwanttofin......
  • 【Java 基础篇】Java Date 类详解:日期和时间操作的利器
    在Java编程中,处理日期和时间是一项常见但复杂的任务。Java提供了许多用于日期和时间操作的类,其中java.util.Date类是最早的日期和时间类之一。然而,它存在一些问题,因此Java8引入了java.time包,其中包含了java.time.LocalDate、java.time.LocalTime和java.time.LocalDat......
  • 【Java 基础篇】深入理解 Java 中的抽象类:提高代码可维护性与扩展性
    抽象类(AbstractClass)是Java面向对象编程中的一个重要概念。它允许我们定义一组抽象方法,这些方法可以被子类(类)实现。抽象类通常用于定义一些通用的方法和属性,但不能被实例化。本篇博客将深入探讨Java中抽象类的概念、语法和实际应用,适用于初学者,帮助你轻松理解和应用抽象类。什......
  • 【Java 基础篇】Java Date 类详解:日期和时间操作的利器
    在Java编程中,处理日期和时间是一项常见但复杂的任务。Java提供了许多用于日期和时间操作的类,其中java.util.Date类是最早的日期和时间类之一。然而,它存在一些问题,因此Java8引入了java.time包,其中包含了java.time.LocalDate、java.time.LocalTime和java.time.LocalDate......
  • 【Java 基础篇】Java 接口全面解析:简化多态性与代码组织
    接口(Interface)是Java面向对象编程中的一个重要概念。它允许定义一组抽象方法,这些方法可以被实现类(类)实现。接口提供了一种规范,规定了实现类必须提供哪些方法,但不关心具体的实现细节。本篇博客将深入探讨Java中接口的概念、语法和实际应用,适用于初学者,帮助你轻松理解和应用接口......
  • 【Java 基础篇】Java继承:打开面向对象编程的大门
    继承是面向对象编程(Object-OrientedProgramming,OOP)中的一个重要概念。在Java中,继承允许一个类(子类)从另一个类(父类)继承属性和方法。这种机制使得代码重用、扩展和维护变得更加容易。本篇博客将深入探讨Java中继承的概念、语法和最佳实践,适用于初学者,让你轻松理解和运用继承的强大功......
  • 【Java 基础篇】Java多态:让你的代码更灵活而强大
    多态是面向对象编程中的一个重要概念,它允许我们在不同的对象上调用相同的方法,但根据对象的不同,可以产生不同的行为。在Java中,多态性是一个强大的特性,它有助于代码的可扩展性和可维护性。本篇博客将深入探讨Java中的多态概念、语法和实际应用,适用于初学者,帮助你轻松理解和应用多......