第一篇博客 ---- 分享关于Maven使用的一些技巧
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命令创建
- 创建Maven的普通Java项目,在dos命令下输入:
mvn archetype:generate -DgroupId=packageName -DartifactId=projectName - 创建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使用的一些技巧的更多相关文章
- 第一篇博客:Hello World
2016年10月10日,双十,好日子,决定开始写第一篇博客,标题想了会,就叫Hello World 吧,哈哈^_^. 首先感谢博客园的管理们能批准我的申请,记得在14年的时候申请过一次,竟然没申请通过 ...
- “Hello, my first blog”------第一篇博客的仪式感
本人在校大学生一枚,开通博客,主要是想记录自己的学习过程,分享自己的学习经历.记得大一的时候,很多不懂的操作和知识,都是在博客上找到了相应的解决办法.但比较讽刺的是,很多时候,曾经解决了的问题,当再次 ...
- 我的第一篇博客 ——【ToDoList】小程序开发
我是一只即将大四的大三狗,这是我的第一篇博客,说来惭愧.今年1月份,学校放寒假的时候开始自学的IOS,放假的时候比较起劲,看了一堆Object-C的视频,然后照着中英文对照的IOS基础开发教程,做了两 ...
- Hello World -- 第一篇博客
今年注定是不寻常的一年,因为技术,接触了许多大牛.通过一篇篇博文,看到了大牛们勤奋好学.孜孜不倦的精神,于是决定也开个博客,向大牛学习. 博客开了,写点什么呢?奈何肚子里墨水不多,吐出来也多是白沫,不 ...
- Ginger的第一篇博客
怀着无感的心情,没有技术的身体,写下第一篇博客作为标记. 目前应该会搞清楚数据结构上相关的操作.算法,然后用c语言实现后记录在博客. 我是有目标的咸鱼! 2019/4/19
- 我的第一篇博客。(JavaScript的声明和数据类型的一些笔记)
这是我的第一篇博客,务必请大家多多关照. 下面是前端js的变量和数据类型的一些笔记,不是很全请多多包涵. 1.变量 变量的声明 var 变量名 变量这个容器中放的是数据 变量的赋值 变量名 = 数据 ...
- 我的第一篇博客:不用sizeof求int的bit数
我的第一篇博客.. 还不会什么高端的东西就来点基础的. 不用sizeof求int的bit数 //不用sizeof求int的bit数 #include<stdio.h> int main( ...
- 第一篇博客 安装open live writer
第一篇博客安装open live writer http://openlivewriter.org/ 有的人可能会打不开,所以我准备了一个百度云的链接地址 链接:https://pan.baidu.c ...
- C博客作业00—我的第一篇博客
C博客作业00-我的第一篇博客 1. 你对网络专业或者计算机专业了解是怎样? 泛泛了解 - 原先只知道网络工程隶属于计算机工程学院,与院中其他专业一样,同样都需要学习大量的计算机基础知识,然后再分支学 ...
随机推荐
- c++中的类之构造函数
一.构造函数的缘由 本文我们主要来讲解c++中类的构造函数,其中涉及了深拷贝和浅拷贝的问题,这也是在面试笔试中经常会碰到的问题.如果您是第一次听说构造函数,可能会觉得这个名字有点高大上,而它却和实际中 ...
- Python基础--函数的定义和调用
一.函数的作用: 提高代码的可读性,减少代码的冗余,方便调用和修改,组织结构清晰 二.函数的定义:函数遵循先定义后调用的原则 1.无参函数 def funcname(): #def 是关键字,后跟函数 ...
- python——模块与包2
模块与包2 1 什么是包 包是一种通过使用.'模块名'来组织python模块名称空间的方式. 无论是import形式还是from...import形式,凡是在导入语句中(而不是在使用时)遇到带点的,都 ...
- 给定了经纬度的一张my_latlng表,和一个my_grid表,怎么实现my_latlng表回mygrid中的id?
场景: 假设我们拥有一个拥有了一系列经纬度的表my_latlng(lat string,lng string)表,还有一张给定的栅格表my_grid(gridid bigint,centerlng d ...
- POJ-1062 昂贵的聘礼---Dijkstra+枚举上界
题目链接: https://vjudge.net/problem/POJ-1062 题目大意: 中文题 思路: 1是终点,可以额外添加一个源点0,0到任意一节点的距离就是这个点的money,最终求的是 ...
- 南阳OJ-2-括号配对问题---栈的应用
题目链接: http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=2 题目大意: 有一行括号序列,请你检查这行括号是否配对. 思路: 直接用栈来模拟 ...
- CNN中减少网络的参数的三个思想
CNN中减少网络的参数的三个思想: 1) 局部连接(Local Connectivity) 2) 权值共享(Shared Weights) 3) 池化(Pooling) 局部连接 局部连接是相对于全连 ...
- 用js来实现那些数据结构(栈01)
其实说到底,在js中栈更像是一种变种的数组,只是没有数组那么多的方法,也没有数组那么灵活.但是栈和队列这两种数据结构比数组更加的高效和可控.而在js中要想模拟栈,依据的主要形式也是数组. 从这篇文章开 ...
- Logstic回归采用sigmoid函数的原因
##Logstic回归采用sigmoid函数的原因(sigmoid函数能表示二项分布概率的原因) sigmoid函数: ![](http://images2017.cnblogs.com/blog/1 ...
- Unity3D input.GetAxis
input.GetAxis用法:(GetAxis("Mouse X"),GetAxis("Mouse Y"),GetAxis("Mouse Scrol ...