Maven环境搭建

在官网上下载maven安装包,地址:http://maven.apache.org/download.cgi

解压文件到电脑坐在盘符目录,如E:\apache-maven-3.3.9-bin。

设置环境变量, 新建 MAVEN_HOME ,然后将maven路径复制到变量值中。

在path 加入 ;%MAVEN_HOME%\bin 路径。在dos界面输入mvn -v ,可以查看是否成功配置环境以及maven版本。

环境变量配置成功后,需要在做如下的配置:

1、在本地创建一个文件夹MavenRepository,并在MavenRepository文件夹下创建文件夹repo。

2、进入Maven解压后的文件夹,进入conf文件夹,将settings.xml文件复制到上一步创建的MavenRepository文件

夹下

3、打开MavenRepository文件夹下的settings.xml文件,找到localRepository标签,此时是被注释掉的,我们解除

注释,然后配置步骤1中的repo路径,如E:\MavenRepository\repo

输入: mvn help:system 查看更改的setting的配置是否生效

在eclipse中使用maven

安装maven插件

在eclipse中需要下载maven离线插件包,成功下载之后解压之后,将子文件夹features和plugins的jar包文件分别导入Eclipse安装目录下的features和plugins文件夹内,然后重启Eclipse就可以在Preferences中看到Maven选项了。即Maven插件配置成功。

注:如果是MyEclipse是不需要执行上述步骤的,MyEclipse自带了Maven插件。

配置maven

在Eclipse中的Perferences进行搜索maven,点击Installations,然后点击add,选择maven的路径进行加载。

加载完之后,在到User Settings 中选择maven的 settings.xml文件,然后点击ok就行。

配置完之后,打开File->New->others,搜索maven,如果看到有Maven Project则代表配置成功。

创建maven项目

使用 eclipse创建

打开File->New->others,搜索maven,选择Maven Project,点击创建。操作如下图所示:

使用maven命令创建

  1. 创建Maven的普通Java项目,在dos命令下输入: 

    mvn archetype:generate -DgroupId=packageName -DartifactId=projectName
  2. 创建Maven的Web项目,在dos命令下输入: 

    mvn archetype:generate -DgroupId=packageName -DartifactId=webappName-DarchetypeArtifactId=maven-archetype-webapp

maven 使用的一些小技巧

maven设置默认的JDK

如果没有设置默认的jdk,一般创建和导入的项目都是jdk1.4的,需要我们手动更改,所以这里我们就在maven配置中设置默认的jdk。

在setting.xml中添加

<!--  设置maven默认jdk -->
<profile>
<id>jdk-1.7</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.7</jdk>
</activation>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
</properties>
</profile>

设置阿里的私服

由于网络的限制,使用maven默认的地址下载jar包很慢,所以使用阿里的maven服务器回更快些。

在setting.xml 中的标签中添加:

    <mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

使用maven打包

如果使用maven打包,只需在pom.xml添加

<build>
<resources>
<resource>
<directory>src/main/resource</directory>
<includes>
<include>*.properties</include>
<include>*.xml</include>
<include>*.tld</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<defaultGoal>compile</defaultGoal>
<sourceDirectory>src</sourceDirectory>
<finalName>first</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.5</version>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.test.App</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin> </plugins>
</build>

说明:上述的的打包是将所有的maven依赖和资源打进一个可以运行jar中,并指定一个main方法。

然后再到项目的跟目录下,也就是和pom.xml平级目录,打开dos界面,输入mvn package就可以打包了。

使用maven遇到的一些问题

1.使用eclipse打包项目出现:Dmaven.multiModuleProjectDirectory system property is not set.

    1添加M2_HOME的环境变量

  2.Preference->Java->Installed JREs->Edit 选择一个jdk,

  在 default vm argument添加  -Dmaven.multiModuleProjectDirectory=$M2_HOME

2.source-1.5 中不支持 diamond运算符

解决办法一:

在properties添加

<maven.compiler.source>1.8</maven.compiler.source>和<maven.compiler.target>1.8</maven.compiler.target>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>

解决方案二:

在plugin中添加 1.8 和 1.8

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>

3.打包出现某jar包无法打入

实际是可以下载,但是无法将此打入包中

解决办法:

在pom.xml中添加

  <repositories>
<repository>
<id>spring-milestone</id>
<url>http://repo.spring.io/libs-release</url>
</repository>
</repositories>

结语

这是我的一篇博客,想来想去也不知道写什么。如是便将之前的笔记进行整理了下发出来。因为是以第一次写博客,很多也不太懂,如果写的不太好,也请望见谅!

还是再说两句吧!经常在逛博客园和CSDN等网站之后,发现很多人都在写博客,觉得他们好厉害! 自己还是个小白,在那时也没有写博客的想法。直到后来博客看多了,也看了一些所谓的小白也在写博客,其中也看了一些大神对于写博客的建议。其中某篇博客中有句话感觉很是受用,写博客最好的时间是在过去,其次就是现在,然后再是将来! 所以感觉现在写还来的急,于是便有了本篇文章!

第一篇博客 ---- 分享关于Maven使用的一些技巧的更多相关文章

  1. 第一篇博客:Hello World

    2016年10月10日,双十,好日子,决定开始写第一篇博客,标题想了会,就叫Hello World 吧,哈哈^_^. 首先感谢博客园的管理们能批准我的申请,记得在14年的时候申请过一次,竟然没申请通过 ...

  2. “Hello, my first blog”------第一篇博客的仪式感

    本人在校大学生一枚,开通博客,主要是想记录自己的学习过程,分享自己的学习经历.记得大一的时候,很多不懂的操作和知识,都是在博客上找到了相应的解决办法.但比较讽刺的是,很多时候,曾经解决了的问题,当再次 ...

  3. 我的第一篇博客 ——【ToDoList】小程序开发

    我是一只即将大四的大三狗,这是我的第一篇博客,说来惭愧.今年1月份,学校放寒假的时候开始自学的IOS,放假的时候比较起劲,看了一堆Object-C的视频,然后照着中英文对照的IOS基础开发教程,做了两 ...

  4. Hello World -- 第一篇博客

    今年注定是不寻常的一年,因为技术,接触了许多大牛.通过一篇篇博文,看到了大牛们勤奋好学.孜孜不倦的精神,于是决定也开个博客,向大牛学习. 博客开了,写点什么呢?奈何肚子里墨水不多,吐出来也多是白沫,不 ...

  5. Ginger的第一篇博客

    怀着无感的心情,没有技术的身体,写下第一篇博客作为标记. 目前应该会搞清楚数据结构上相关的操作.算法,然后用c语言实现后记录在博客. 我是有目标的咸鱼! 2019/4/19

  6. 我的第一篇博客。(JavaScript的声明和数据类型的一些笔记)

    这是我的第一篇博客,务必请大家多多关照. 下面是前端js的变量和数据类型的一些笔记,不是很全请多多包涵. 1.变量 变量的声明 var 变量名 变量这个容器中放的是数据 变量的赋值 变量名 = 数据 ...

  7. 我的第一篇博客:不用sizeof求int的bit数

    我的第一篇博客..  还不会什么高端的东西就来点基础的. 不用sizeof求int的bit数 //不用sizeof求int的bit数 #include<stdio.h> int main( ...

  8. 第一篇博客 安装open live writer

    第一篇博客安装open live writer http://openlivewriter.org/ 有的人可能会打不开,所以我准备了一个百度云的链接地址 链接:https://pan.baidu.c ...

  9. C博客作业00—我的第一篇博客

    C博客作业00-我的第一篇博客 1. 你对网络专业或者计算机专业了解是怎样? 泛泛了解 - 原先只知道网络工程隶属于计算机工程学院,与院中其他专业一样,同样都需要学习大量的计算机基础知识,然后再分支学 ...

随机推荐

  1. Java 高级开发必修知识---反射

    Class类的使用 1) 在面向对象的世界里,万事万物皆对象 A. Java语言中,普通数据类型,静态成员不是对象,其他皆对象 B. 每一个类也是对象 C. 类是java.lang.Class类的实例 ...

  2. python 报障系统(完)

    python 报障系统(完) 一.报障系统原理: 原理: 1. 简单管理 2. 角色多管理(权限) a. 登录 session放置用户信息(检测是否已经登录) session放置权限信息(检测是否有权 ...

  3. asp.net core 六 Oracle ORM

         .netcore 中 Oracle ORM      在真正将项目移植到.netcore下,才发现会有很多问题,例如访问Oracle,问题出现的时间在2017年底          参考连接 ...

  4. html的特点及结构

    html 语言就是开发网页的基础语言: html(超文本标记语言) 标记 : 该门语言是有标签来构成的. 学习html不用怎么去理解,只要需要记住标签的作用即可. html语言的特点: 1. html ...

  5. PHP 常用header头定义

    在php的开发中,我们常常需要使用到header函数头来进行做标记 header() 函数向客户端发送原始的 HTTP 报头. 常用header设置列表如下: header('HTTP/1.1 200 ...

  6. js实现继承的5种方式

    js是门灵活的语言,实现一种功能往往有多种做法,ECMAScript没有明确的继承机制,而是通过模仿实现的,根据js语言的本身的特性,js实现继承有以下通用的几种方式1.使用对象冒充实现继承(该种实现 ...

  7. 解决 Can't Connect to MySQL Server on IPAddress (10061) 的问题

    我的MySQL服务器安装在Ubuntu 14.04.3 LTS操作系统上. 然后我通过局域网内的另一台电脑连不上,但是能ping通. 解决办法是首先找到my.cnf这个文件. 我的文件位置在/etc/ ...

  8. [LeetCode] Longest Line of Consecutive One in Matrix 矩阵中最长的连续1

    Given a 01 matrix M, find the longest line of consecutive one in the matrix. The line could be horiz ...

  9. 实验吧_登陆一下好吗(骚注入)&你真的会PHP吗?(代码审计)

    登陆一下好吗 首先看到两个输入框,分别对应账号密码,随手输个admin,admin进去,提交后发现有回显,既然题目说了过滤了一切,那就先看看过滤了些啥 经过一波测试,发现服务器过滤了union,sel ...

  10. vba打开输入文件

    Sub fileCreate2() Dim folderPath, fileName, s As String Dim fs, fo, fc, f As Object folderPath = &qu ...