eclipse MAVEN插件正确使用方式。
- 首先贴出我的MAVEN的setting.xml文件,嗯,我也怕忘了下次再怎么去配置。
<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><pluginGroups></pluginGroups><proxies></proxies><servers><server><id>releases</id><username>admin</username><password>admin123</password></server><server><id>snapshots</id><username>admin</username><password>admin123</password></server><!-- 自动打包部署到tomcat,用户名和密码对应tomcat/conf/tomcat-users.xml的配置 --><server><id>tomcat7</id><username>manager</username><password>cc830905</password></server> </servers><mirrors></mirrors><profiles><!-- 配置maven创建工程时使用的JDK编译版本 --><profile><id>jdk17</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><profile> <id>dev</id> <repositories> <repository> <id>local-nexus</id> <url>http://cc.thiscc.com:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository><repository><id>people.apache.snapshots</id><url>http://repository.apache.org/content/groups/snapshots-group/</url><releases><enabled>false</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository> </repositories> </profile>
</profiles><activeProfiles> <activeProfile>dev</activeProfile>
</activeProfiles></settings>
使用eclipse创建maven web工程的步骤:
- new–>Project…–>Maven Project
- 配置项目运行容器tomcat
问题:经常创建maven项目后,pom.xml头会报诸如:
Description Resource Path Location Type Could not calculate build plan: Failure to transfer xxx.xxx...
的错误。
比如:
- 原因:
- 使用maven下载jar包的过程中,很容易因为各种原因(网速慢、断网)导致jar包下载不下来,出现很多
.lastUpdated
文件。因为这些文件的存在,导致jar包没能正确下载下来,所以maven找不到相关的jar包。 - 解决办法:去本地仓库目录repository删除
.lastUpdated
后缀的文件。这里提供两个平台批量删除的脚本:
- 使用maven下载jar包的过程中,很容易因为各种原因(网速慢、断网)导致jar包下载不下来,出现很多
- 原因:
for windows平台:
cd %userprofile%\.m2\repository
for /r %i in (*.lastUpdated) do del %i
for linux平台
find ~/.m2 -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;
删除完成之后,在右键项目工程,选择Maven
–>Update Project...
更新一下即可。
- 问题: 在Eclipse中新建了一个Maven工程, 默认生成的JDK版本是1.5,然后更改JDK版本为1.7, 结果每次使用Maven > Update project的时候JDK版本都恢复成1.5。
- 原因:
- 这是Maven已知的一个特性。除非在你的POM文件中显示的指定一个版本,否则会使用编译器默认的source/target版本1.5。主要还是在于Eclipse中Maven的集成方式起到了关键作用, 它会从POM文件中生成项目的.project,.classpath以及.settings, 因此除非POM文件指定了正确的JDK版本, 否则你每次更新项目配置的时候它都会重置到1.5版本。
- 解决办法: 在项目的pom.xml文件中增加如下配置:
- 原因:
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><source>1.7</source> <!-- 源代码使用的开发版本 --><target>1.7</target> <!-- 需要生成的目标class文件的编译版本 --><!-- 一般而言,target与source是保持一致的,但是,有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk,源代码中需要没有使用低版本jdk中不支持的语法),会存在target不同于source的情况 --><encoding>UTF8</encoding> <!--windows默认使用GBK编码,java项目经常编码为utf8,也需要在compiler插件中指出,否则中文乱码可能会出现编译错误--></configuration></plugin></plugins>
</build>
参考官方示例:http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html
技巧:上面的方法每次都要去生成的工程中去修改pom,项目多的话修改起来很麻烦,这里有个一劳永逸的办法,修改eclipse 创建maven项目设置默认jdk版本:
- 只需要在maven的setting.xml文件中 的 profiles 节点 加入如下代码片段:
<profile> <id>jdk17</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>
官方解释:http://maven.apache.org/plugins/maven-compiler-plugin/index.html
- **问题:使用Maven > Update project的后项目编码UTF-8被改成GBK的问题。
- 原因:当在DOS下执行mvn compile命令时,默认使用的是系统的GBK格式编码。
- 解决办法:在pom.xml中指定编码。
<properties><!-- 文件拷贝时的编码 --><project.build.sourceencoding>UTF-8</project.build.sourceencoding><project.reporting.outputencoding>UTF-8</project.reporting.outputencoding><!-- 编译时的编码 --><maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>
- 技巧:创建支持Java Servlet3.0的Maven Webapp项目
- 首先明确一个概念:dynamic web module version与tomcat以及JDK之间的对应关系
dynamic web module version | 对应的tomcat | 对应的J2EE |
---|---|---|
2.3 | 未知 | JAVA1.3以上 |
2.4 | tomcat5.5以上 | JAVA1.3以上 |
2.5 | tomcat6以上 | JAVA1.5以上 |
3.0 | tomcat7以上 | JAVA1.6以上 |
3.1 | tomcat8以上 | JAVA1.7以上 |
这里我也不是很懂,找了半天资料都没搞明白这什么玩意o(╯□╰)o,我的理解大概就是如果你用的dynamic web module是3.0的,那么你把这个项目部署在tomcat6里面去运行是不行滴,用1.7版本一下的JDK也是不行滴,嗯,大概就是这样。理解错了欢迎给我指正。
这个技巧是由一个问题引出来的:那就是当你右键eclipse的工程,选择属性,再选择Project Facets里面中选择Dynamic Web Module,想修改这个Module版本的时候,提示你:
Cannot change version of project facet Dynamic Web Module to 3.0
就是死活不让修改!那我们只能暴力执法了→_→,去修改配置文件:
另外这里还有另一种解决方式,我就不赘述了,英语比较好的去参考一下歪果仁的思路—>传送门
到这里还不算完,还有一个地方需要我们去修改一下,那就是web.xml文件。
当你修改Dynamic Web Module后,Update Project…后就会看到上面这样子的图。这是web.xml声明中的版本和Dynamic Web Module不一致造成的,那么我们就来修改一下web.xml这个声明:
方便伸手党copy的代码在下面:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID" version="3.0"><display-name>xcrm</display-name>
</web-app>
再次右键工程–>Maven–>Update Project…,大功告成,一个没有红叉叉的maven web项目就这样完成了。
哎,另一种方式也记录一下吧,就是上面传送门歪果仁用的方法,照顾一下英语和我一样渣的童鞋。。最主要的区别就是,这种方式可以直接在eclipse里面完成,而不用重启eclipse。进入正题:
- 创建maven project,没什么好说的,大把的教程了。
右键工程–>properties–>project facets,此时如下:
我们要做的就是先把Dynamic Web Module的勾去掉,再Apply。此时我们再去把它勾上,现在你就可以任意选择版本了,如下:
点击Apply之后,此时我们会发现,在工程目录里面多了个WebContent目录。把它自动给我们添加的WebContent目录删除掉,在右键工程–>properties–>Deployment Assembly中该删的删了,该添加的加上,最终下面这张图一样就差不多了。
这里配置的其实就是项目部署的目录,很明显,我们要把src/main/java和src/main/resource里面的文件要发布到项目的WEB-INF/classes目录里面,src/main/webapp下的文件发布到项目的/目录下面,当然maven Dependencies里面自动下载下来的jar包就要部署到项目的WEB-INF/lib目录下面了。最后,同样的还得修改一下web.xml的声明和Dynamic Web Module版本对应,同上。修改完后别忘了右键工程–>Maven–>Update Project… 嗯!The END!
如何下载maven中依赖包的源码?
有些时候,遇到程序莫名其妙的错误的时候,可能需要去看源码找问题,如果不是maven工程,你可能需要一个一个的去下载jar包所对应的源码,然后再通过link关联起来,既麻烦也不优雅。但是如果是maven工程,这一切都好办,只要一个命令mvn dependency:sources
就能解决。
右键工程–>Run As–>Maven build,在Goals中输入dependency:sources
,再点击Run,然后等它下载完就行了。
so easy!
eclipse MAVEN插件正确使用方式。相关推荐
- eclipse maven 插件的安装和配置
maven3 安装: 安装 Maven 之前要求先确定你的 JDK 已经安装配置完毕.Maven是 Apache 下的一个项目.眼下最新版本号是 3.0.4.我用的也是这个. 首先去官网下载 Mave ...
- Docker之使用maven插件【Dockerfile方式】构建并推送镜像到私有仓库
准备工作 操作系统版本 [root@node02 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) docker版本 [ ...
- eclipse maven插件创建java web项目(2)
为什么80%的码农都做不了架构师?>>> 好了.马不停蹄,再来一篇使用骨架创建maven web项目的方法,大神就不要看了,小白快来学习吧 开始, 1>创建maven项目 ...
- 如何去除Eclipse Maven插件里关于Managed version的警告消息
问题:Eclipse的Maven插件报一些警告消息: Overriding managed version 2.8.10 for jackson-databind pom.xml /prolikeSe ...
- Docker之使用maven插件【配置方式】构建并推送镜像到私有仓库
准备工作 操作系统版本 [root@node02 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) docker版本 [ ...
- jmeter安装包双击没反应_Jmeter5.0源码在eclipse运行的正确打开方式
每周一三07:22,准时为你充电 用jmeter也已经有3.4年的时间了,虽然也做过一些简单的扩展,但是一直没有勇气去看源码.作为一个社区活跃,目前使用广泛的工具,自然有他的独到之处,所以最近打算看看 ...
- eclipse maven插件问题:error occurred while automatically activating bundle org.eclipse.m2e.core.ui (525)
为了方便,在开发的过程中我们通常使用maven来管理项目,但是最近经常出现一个问题使得项目无法通过编译: Unable to create the selected preference page. ...
- eclipse maven plugin 插件 安装 和 配置
本文转自:http://www.blogjava.net/fancydeepin/archive/2012/07/13/eclipse_maven3_plugin.html maven3 安装: 安装 ...
- 安装eclipse的maven插件
工具/原料 eclipse(Helios) 3.6 maven 3.0.4 方法/步骤 maven3 安装: 安装 Maven 之前要求先确定你的 JDK 已经安装配置完成.Maven是 Apache ...
最新文章
- ACM之路(16)—— 数位DP
- 【转】Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask
- MySQL 高可用:mysql+mycat实现数据库分片(分库分表)
- 2.平凡之路-初识MyBatis
- 高考610考哪个计算机学校,2019年高考成绩610分_615分左右能报考上什么学校 文科理科大学名单推荐...
- [mybatis]Mapper XML Files_CUD
- Groovy在Spring中的简单使用实例
- php jq表格,如何用jQuery操作表单和表格
- 9.思科交换路由基本命令操作
- irf和链路聚合综合实验
- ubuntu vscode 配置字体_配置vscode终端字体,vscode终端字体
- 用思科模拟器对交换机进行超级终端配置和Telnet远程登录配置
- SlickEdit 使用技巧大收集
- BackTrack5(BT5)安装教程及BT5支持网卡列表
- http://gm100861.blog.51cto.com/1930562/954333
- 统计原理笔记 Notes for Statistics I
- 实现微信打开网页时,获取当前微信用户信息(Java)(基于snsapi_userinfo方式)
- 手机游戏真的那么好赚钱吗?
- 【解决】Keil中创建工程时出现-arm_math.h(xxx): warning: #xxxx-D: unrecognized GCC pragma错误
- NandFlash 驱动分析与基础功能实现