Maven 使用笔记

创建一个项目

mvn archetype:generate -DarchetypeCatalog=internal
-DgroupId=com.mycompany.app -DartifactId=my-app
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
  • mvn archetype:generate 固定格式
  • -DgroupId 组织标识,包名
  • -DartifactId 项目名称
  • -DarchetypeCatalog=internal 不要从远程服务器上取 catalog,解决新建项目卡在 Generating project in interactive mode 处的问题
  • -DarchetypeArtifactId 指定 ArchetypeId , maven-archetype-quickstart , 创建一个 java 项目; maven-archetype-webapp ,创建一个 web 项目
  • -DinteractiveMode 是否使用交互模式

修改本地仓库路径

setting.xml 中增加下面的配置,将 本地地址 改成对应的路径即可。

<localRepository>本地地址</localRepository>

导出工程依赖的 jar 包

  • 导出到默认目录下

    mvn dependency:copy-dependencies
    
  • 导出到指定目录下

    mvn dependency:copy-dependencied -DoutputDirecrtory=lib
    
  • 设置依赖级别,并导出到对应的目录下

    mvn dependency:copy-dependencied -DoutputDirecrtory=lib -DincludeScope=jcompile
    

对应的5个级别:

  • complie: 表示 dependency 都在生命周期中使用,同时会传递到依赖项目中
  • provided: 表示 dependency 由 JDK 或者容器提供,只作用在编译和测试时,无传递性
  • runtime: 表示 dependency 不作用在编译时,但会作用在运行和测试时
  • test: 表示 dependency 作用在测试时,不作用在运行时,不随项目发布
  • system: 与 provided 类似,但是在系统中要以外部 jar 包形式提供,maven 不会在 repository 查找它

使用华为镜像

setting.xml 文件中 mirrors 节点中添加下面的内容:

<mirror>
    <id>huaweicloud</id>
    <mirrorOf>*</mirrorOf>
    <url>https://mirrors.huaweicloud.com/repository/maven/</url>
</mirror>

另外华为的镜像站为 https://mirrors.huaweicloud.com

maven 常用命令

| 命令 | 作用 | |---------------------|--------------------------------------------------------| | mvn clean | 清理项目生产的临时文件,一般是模块下的 target 目录 | | mvn compile | 编译源代码,一般编译模块下的src/main/java目录 | | mvn package | 项目打包工具,会在模块下的target目录生成jar或war等文件 | | mvn install | 将打包的jar/war文件复制到你的本地仓库中,供其他模块使用 | | mvn deploy | 将打包的文件发布到远程参考,提供其他人员进行下载依赖 | | mvn site | 生成项目相关信息的网站 | | mvn dependency:tree | 打印出项目的整个依赖树 | | mvn spring-boot:run | 启动 springboot 项目 |

Author
Tags
总结(3) Emacs(2) org mode(4) 年度清单(2) 读书清单(2) 电影清单(2) 电视清单(2) Python(3) 学习计划(1) 子弹笔记(1) 手帐体系(1) 时间管理(1) 时间使用效率(1) 形意拳(1) 知识管理(1) 简历(1) 技能水平(1) 生活(1) 减法生活(1) 阅读(1) 阅读分组(1) org(1) docx(1) markdown(2) cmder(1) 图床(1) jsdelivr(1) github(1) 安卓系统(1) 手动更新手机系统(1) post link(1) post path(1) hexo(2) hugo(2) GitHub Pages(1) travis(1) 自动部署博客(1) presentation(1) gcc(1) g++(1) 默认表格(1) 复杂表格(1) multimd table(1) google adsense(1) evil(1) surround(1) librime(2) emacs-rime(1) liberime(1) dot(1) graphviz(1) use-sub-superscripts(1) ditaa(1) Evil Multiple cursors(1) turn evil mode off(1) modifier keys(1) keymap(1) super(1) hyper(1) install Emacs(1) Mac OS(1) keybinds(1) clocktable(1) coding system(1) image library(1) keybind(1) spacemacs(1) org babel(1) homebrew(1) dd(1) diskutil(1) tmux(1) xcode(1) xcrun(1) node-gyp(1) tar(1) tree(1) pacman(1) plantuml(1) find(1) grep(2) du(1) apt-get(1) apt(1) regex(1) wildcard(1) zsh(1) gdb(1) lsof(1) netstat(1) rebase(2) workflow(1) 工作流(1) .gitignore(1) postbuffer(1) hung up(1) merge(1) cache(1) reset(1) Git(1) command(1) submodule(1) GitHub Pull Request(1) pr(1) Matplotlib(1) beautifusoup(1) 下载小说(1) SOLID(1) Leetcode(2) 透视表(1) read_excel()(1) pandas(1) conda(1) django(1) markdown-deux(1) mysql(1) oracle(1) 模糊查询(1) logging level(1) reflex(1) Field(1) Maven(1) Selenium(1) 下拉框(1) select into(1) insert into select(1) CAST(1) CONVERT(1) timestamp(1) concat(1) concat_ws(1) group_concat(1) union(1) grant privileges(1) 重置 root 密码(1) 报错 10060(1) 清理连接数(1) create user(1) set password(1) exists(1) in(1) markdown-it(1) emoji(1) tasks(1) valine(1) Code 504(1) Hugo(1) theme(1) substring(1) indexOf(1) RegExp(1) 定位节点(1) 正则匹配(1) async(1) 异步请求(1) css(2) layui(1) 滚动条(1) JavaScript(1)