Maven安装与使用

Posted Jinhao Chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven安装与使用相关的知识,希望对你有一定的参考价值。

Maven

  • settings.xml与仓库
  • settings.xml配置本地仓库 <localRepository>/path/to/local/repo</localRepository>
  • pom.xml为maven的核心文件, 用于保存maven的元信息, 指明maven如何运行, pom.xml放在项目的根目录下

在pom.xml中

  • groupid标签为包名
  • artifact标签为模块(一个maven工程, 有pom.xml)
  • version版本
<dependency>
    <groupId>org.bux.maven</groupId>
    <artifactId>demo</artifactId>
    <version>1.0.2 SNAPSHOT</version>
</dependency>

他们构成了坐标
对应的目录是: org/bux/maven/demo/1.0.2/*.jar
    
  • plugin: 指明maven构建程序

使用maven创建项目

  1. 创建一个工作空间
  2. mvn命令创建 去互联网上拷贝即可
  3. mvn构建项目第一次执行时会下载一些组件, 结束之后就会一个maven工程目录src/main, src/test

对项目进行管理(在pom.xml所在位置)

  1. 编译 mvn compile --> 生成target文件夹, 有一个classes在里面
  2. 测试 mvn test 步骤: 先编译后执行 --> 在target中生成test-class文件夹
  3. 清理 mvn clean 将编译文件清楚, 之后只剩下src文件夹
  4. 打包 mvn package
  5. 发布安装 mvn install 自动打包成jar并发布
  6. 发布到服务器(tomcat, jboss) mvn deploy --> 一般线上使用

将maven转为eclipse的project

  • mvn eclipse:eclipse

将maven转为idea的project

  • mvn idea:idea

启动tomcat

  • mvn tomcat:run

关于仓库

  • effective pom.xml = super pom.xml + user-define pom.xml, 模块中的pom集成parent的pom, 就是模块与父目录, 但是一般有子模块会在dependencies上有一个dependencyManagement标签

java开发流程

  • 编写
  • 调试
  • 打包成jar或者war
  • 发布

maven实现多模块

<modules>
    <module>name</module>
    <module>name</module>
</modules>

父目录管理子模块常用的配置(主要采用dependencyManagement标签统一管理版本)


使用dependencyManagement可以统一管理项目的版本号,确保应用的各个项目的依赖和版本一致,不用每个模块项目都弄一个版本号,不利于管理,当需要变更版本号的时候只需要在父类容器里更新,不需要任何一个子项目的修改;如果某个子项目需要另外一个特殊的版本号时,只需要在自己的模块dependencies中声明一个版本号即可。子类就会使用子类声明的版本号,不继承于父类版本号。

<property>
    <spring-core.version>1.1.1</spring-core.version>
<property>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring-core.version}</version>
        </dependency>
    </dependencies>
</dependencyManagemet>


在子模块中指明
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
    </dependency>


在父目录中导入子模块的包
    <dependencies>
        <groupId>submodule-groupId</groupId>        <artifactId>submodule-artifactId</artifactId>
        <version>1.1.1</version>
    </dependencies>

防止版本冲突

<property>
    <log4j.version>1.1.1</log4j.version>
</property>

引用${log4j.version}

搭建私服

方法一

  • 将war包拷贝到tomcat中

方法二

  • 下载包含jetty的nexus
  • http://localhost:8081/nexus
  • 点击右上方的login等读admin, admin123
  • indexer: 存放索引
  • storage: 存放jar包

以上是关于Maven安装与使用的主要内容,如果未能解决你的问题,请参考以下文章

Maven介绍与安装配置

windows下代码规范检测工具sonarqube安装与使用,含与maven的结合

Maven介绍与安装配置

Jacoco和Tycho surefire的Eclipse RCP插件代码介绍

maven web项目的web.xml报错The markup in the document following the root element must be well-formed.(代码片段

Maven的安装与配置(macOS)