Maven

Maven官网:https://maven.apache.org/

Apache Maven 是一个软件项目管理和理解工具。基于项目对象模型 (POM) 的概念,Maven 可以从一条中央信息中管理项目的构建、报告和文档。

主要用来生成、导入和配置jar包,在Maven 中约束大于配置 目录结构必须按照规范

Maven安装

官网下载安装包解压即可

Maven配置环境变量

windows中配置maven环境变量

mac下环境变量配置(这里后面方便项目搭建 换成了3.6.3的版本)

# Maven 3.8.1 START
export M2_HOME=/Users/bjdzbjba0152/Desktop/javacode/enviorment/apache-maven-3.8.1
export PATH=$PATH:$M2_HOME/bin
# Maven 3.8.1 END # Maven 3.6.3 START
export M2_HOME=/Users/bjdzbjba0152/Desktop/javacode/enviorment/apache-maven-3.6.3
export PATH=$PATH:$M2_HOME/bin
# Maven 3.6.3 END

Maven配置aliyun镜像

配置文件位于 conf/settings.xml

<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

Maven本地仓库

<localRepository>/Users/b/Desktop/javacode/enviorment/apache-maven-3.8.1/maven-repo</localRepository>

从镜像拉取包

mvn help:system

最后没有报错说明安装就没问题了

IDEA中使用Maven

创建一个Maven项目

next,不选自带的,选择刚才下载的3.8.1

点击finish就ok了

打开Preference 可以看下关于maven的相关配置,因为有时IDEA会自动使用默认的Maven,如果出现类似情况需要手动改一下

关于其他几项配置

importing

Ignored Files

Runner

Repositories 本地仓库

创建一个普通的Maven项目

Maven纯净项目概览

Maven项目配置Tomcat

在run=>Edit Configurations

设置基础信息

解决fix报错内容,添加一个artifact即可。下面的Application context可写可不写,是指定路由的

点击+无artifact解决:

打开Project Structure ==> 选择Artifacts ==> Web Application:Exploded

选择自己的项目就好了

回到Edit Configurations,就已经出现了Artifact...选项了

Maven侧边栏

Maven中的pom.xml

pom.xml是maven的核心配置文件,注意<dependencies>这里可以根据远程仓库选择自己的依赖jar包,只要在配置文件加入该包的<dependency> Maven即可自动导入该jar包也包括这个jar包所依赖的其他jar包。

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<?xml version="1.0" encoding="UTF-8"?>
<!--Maven版本和头文件-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <!--GAV配置(group id,artifact id, version)-->
<groupId>com.zh1z3ven</groupId>
<artifactId>javawebTestDemo</artifactId>
<version>1.0-SNAPSHOT</version> <!-- 项目打包方式
jar: java应用
war: javaweb应用
-->
<packaging>war</packaging>
<!--项目名称(可删)-->
<name>javawebTestDemo Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url> <!--配置-->
<properties>
<!-- 项目默认构建编码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 项目默认编译版本-->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties> <!-- 项目依赖-->
<dependencies>
<!-- 具体依赖jar包配置-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies> <!-- 项目构建用的东西-->
<build>
<finalName>javawebTestDemo</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>

Maven观察jar包依赖树

关于Maven导出问题

由于Maven约定大于配置,我们之后可能遇到我们写的配置文件无法导出或生效

解决方法:在build下面加一个resource,配置一个resource节点,防止资源导出失败

因默认在java目录下,根据maven的约束只能写java文件,如果这时该目录存在xml文件则无法导出

<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>

IDEA中Maven的使用初探的更多相关文章

  1. Maven使用笔记(二)Eclipse中maven项目添加依赖

    1.在Eclipse中创建Eclipse项目后如何添加jar包? 点击pom.xml文件.我们可以看到下面有7个标签. 各个标签的含义如下: Overview:显示maven项目的一些基本信息Depe ...

  2. 关于myeclipse中maven项目转换相关设置

    关于myeclipse中maven项目转换相关设置 在myeclipse菜单中,Configure->Convert to Maven Project 这个菜单 如果没有的话,需要做如下设置: ...

  3. 转载Eclipse中Maven WEB工程tomcat项目添加调试

    转载地址: http://blog.csdn.net/free4294/article/details/38260581 一.建立一个maven  WEB项目 1.file->new->o ...

  4. maven下载,安装与eclipse中maven配置

    1.maven下载.安装与环境变量配置 http://blog.csdn.net/jiuqiyuliang/article/details/45390313 2.Eclipse中maven的配置 ht ...

  5. Eclipse中Maven的配置

    Maven 的配置 1. 安装配置Maven: 1.1 从Apache网站 http://maven.apache.org/ 下载并且解压缩安装Apache Maven 1.2 配置 Maven 的c ...

  6. IDEA中MAVEN项目Dependency not found 问题

    STEP1: 更新IDEA保存的仓库索引.操作步骤File->Setting->Maven->Repositories->Update.dependecy not found问 ...

  7. Eclipse 中 Maven 项目默认JDK版本为1.5 的解决方法

    在 Eclipse 中 Maven project 的默认 JDK 版本是 1.5, 如果不在 settings.xml 或者 pom.xml 中显示的指出 JDK 版本,每次 右键项目--> ...

  8. eclipse中maven项目jar包不会自动下载解决办法

    Eclipse中maven从远程仓库中下载jar包有时会很慢,有些甚至进度停止不动,这个时候我们可能会终止当前下载,但是终止jar包下载后会出现一个问题,再次打开Eclipse时,你会发现提示你项目中 ...

  9. idea中 maven打包时时报错User setting file does not exist C:\Users\lenevo\.m2\setting.xml,

    第一种错误 :idea中 maven打包时时报错User setting file does not exist C:\Users\lenevo\.m2\setting.xml, 解决方案如下:将ma ...

随机推荐

  1. buu [MRCTF2020]keyboard

    密文: ooo yyy ii w uuu ee uuuu yyy uuuu y w uuu i i rr w i i rr rrr uuuu rrr uuuu t ii uuuu i w u rrr ...

  2. Leetcode No.1 Two Sum(c++哈希表实现)

    1. 题目 1.1 英文题目 Given an array of integers nums and an integer target, return indices of the two numb ...

  3. docker起不来报错:Failed to start Docker Application Container Engine.

    报错信息如下: [root@localhost localdisk]# systemctl restart docker Job for docker.service failed because t ...

  4. Flask(12)- 操作 Session

    前言 Session 详解:https://www.cnblogs.com/poloyy/p/12513247.html 这一节来瞧一瞧如何用 Flask 操作 Session 功能 list 提供操 ...

  5. CURL 实战下载

    #include <string> #include <stdio.h> #include <iostream> #include<fstream> # ...

  6. QT. 学习之路 三

    添加一个动作: Qt 使用QAction类作为动作.QAction包含了图标.菜单文字.快捷键.状态栏文字.浮动帮助等信息.当把一个QAction对象添加到程序中时,Qt 自己选择使用哪个属性来显示, ...

  7. mindmaster导出markdown文档

    mindmaster支持多终端同步,10M免费云空间对于免费用户来说够用了,又给我的IPad增加了生产力,赞! 每次在写文章之前我都会先用mindmaster的思维导图把结构写好,然后根据结构大纲写文 ...

  8. [刘阳Java]_Java基础面试中的常识问题

    1. anonymous inner class(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 不行,对于匿名内部类,看到的一句话 ...

  9. lucene 类介绍

    lucene中重要的类: IndexWriter:lucene中最重要的类之一,主要用于索引的创建 Analyzer(抽象类):分析器,主要用于分析文本,常用的有StandardAnalyzer分析器 ...

  10. vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)

    前言: 此事例是在vue组件中,使用canvas实现倒计时动画的效果.其实,实现效果的逻辑跟vue没有关系,只要读懂canvas如何实现效果的这部分逻辑就可以了 canvas动画的原理:利用定时器,给 ...