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

maven权威指南(读书笔记一)

以下用【】的是阅读时候想到的问题

maven:
是什么:构建工具,项目管理工具、多模块管理、模块复用、生命周期
特点:约定大于配置。详见项目结构
核心概念:???

【Maven Archetype插件】

而像-Dname=value这样的对是将会被传到目标中
的参数,它们使用-D属性这样的形式1,类似于你通过命令行向Java虚拟机传递系统属性。

archetype:create这个目标的目的通过archetype快速创建一个项目。在这里,一个archetype被定义为“一个原始的模型或者类型,在它之后其它类似的东西与之匹配;一个原型(prototype)”

【问题:maven常见的archetype】
【之前一直以为archetype是idea提供的,笑死】

maven-archetype-quickstart。Quickstart archetype生成了一个最小项目的躯壳,包括一个POM和一个类。

Maven生命周期 (Lifecycle)

【mvn package是个复合的流程吗】
可以简单理解为,mvn package 会依次执行以下阶段:
validate → compile → test → package → verify
然后生成一个 JAR 或 WAR 文件,通常存放在 target 目录中。

总结来说,mvn package 是一个复合命令,它不仅仅是打包阶段,而是包括了验证、编译、测试、打包等多个重要的构建步骤。

packaging
项目的类型,默认是jar,描述了项目打包后的输出

【mvn install是复合命令吗】

依赖传递 transitive dependencies

【Linux服务器ps -ef看到的命令好像就是maven打包命令?】

mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch05
-DartifactId=simple-webapp
-DpackageName=org.sonatype.mavenbook
-DarchetypeArtifactId=


想要构建打包这个应用,在包含pom.xml的目录
下运行mvn install

运行
java -cp

POM是啥
简单的项目对象模型 (Project Object Model)

Apache Maven
• Maven 拥有约定,因为你遵循了约定,它已经知道你的源代码在哪里。它把字节码放到 target/classes ,然后在 target 生成一个 JAR 文件。
• Maven 是声明式的。你需要做的只是创建一个 pom.xml 文件然后将源代码放到默认的目录。Maven 会帮你处理其它的事情。
• Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。
Maven 以插件的形式为一些一般的项目任务提供了内置的智能。如果你想要编写运行单元测试,你需要做的只是编写测试然后放到 /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/content-zh/src/test/java ,添加一个对于 TestNG 或者 JUnit 的测试范围依赖,然后运行 mvn test 。如果你想要部署一个web 应用而非 JAR ,你需要做的是改变你的项目类型为 war ,然后把你文档根目录置为 /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/content-zh/src/main/webapp


http://www.kler.cn/a/444138.html

相关文章:

  • HBase、Hive、Redis 和 MongoDB的对比
  • 安全算法基础(一)
  • 解决docker环境下aspose-words转换word成pdf后乱码问题
  • 基于Python3编写的Golang程序多平台交叉编译自动化脚本
  • 手眼标定工具操作文档
  • 基于51单片机的交通灯设计—夜间、紧急、复位、可调时间、四个数码管显示
  • 「iOS」通过CoreLocation Framework深入了解MVC架构
  • 硬件---14---PCB学习:PCB封装库及布局操作
  • Linux Red Hat安装包安装nodejs
  • samout llm解码 幻觉更低更稳定
  • CentOS 快捷安装 jenkins 并设置开机自启
  • vue相关的---Vuex
  • 游戏AI实现-寻路算法(DFS)
  • ESP-AT 固件:物联网智能 “引擎”
  • C语言学习day22:URLDownloadToFile函数/开发文件下载工具
  • [python]使用flask-caching缓存数据
  • QT图形/视图架构详解(二)
  • Oracle 技术精选学习
  • VScode使用教程(菜鸟版)
  • Day26下 - BERT项目实战
  • 2024 年的科技趋势
  • vue-cli 5接入模块联邦 module federation
  • 【GO环境安装】mac系统+GoLand使用
  • nginx 记录完整的 request 及 response
  • 使用JustAuth实现gittee登录
  • 中型项目下的 MySQL 挑战与应对