`
x7700
  • 浏览: 53931 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Maven最佳实践

阅读更多

一、在eclipse.ini中指定vm参数

Eclipse默认是运行在JRE上的,而m2eclipse的一些功能要求使用JDK,解决方法是配置Eclipse安装目录的eclipse.ini文件,添加vm配置指向JDK,如:

--launcher.XXMaxPermSize 256m
-vm
D:\java\jdk1.6.0_07\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx256m

二、设置MAVEN_OPTS环境变量

我们通常需要设置MAVEN_OPTS的值为:-Xms128m -Xmx512m,因为Java默认的最大可用内存往往不能够满足Maven运行的需要,比如在项目较大时,使用Maven生成项目站点需要占用大量的内存,如果没有该配置,我们很容易得到java.lang.OutOfMemeoryError。因此,一开始就配置该变量是推荐的做法。
关于如何设置环境变量,请参考前面设置M2_HOME环境变量的做法,尽量不要直接修改mvn.bat或者mvn这两个Maven执行脚本文件。因为如果修改了脚本文件,升级Maven时你就不得不再次修改,一来麻烦,二来容易忘记。同理,我们应该尽可能地不去修改任何Maven安装目录下的文件。

三、配置用户范围settings.xml

Maven用户可以选择配置$M2_HOME/conf/settings.xml或者~/.m2/settings.xml。前者是全局范围的,整台机器上的所有用户都会直接受到该配置的影响,而后者是用户范围的,只有当前用户才会受到该配置的影响。

我们推荐使用用户范围的settings.xml,主要原因是为了避免无意识地影响到系统中的其他用户。当然,如果你有切实的需求,需要统一系统中所有用户的settings.xml配置,当然应该使用全局范围的settings.xml。

除了影响范围这一因素,配置用户范围settings.xml文件还便于Maven升级。直接修改conf目录下的settings.xml会导致Maven升级不便,每次升级到新版本的Maven,都需要复制settings.xml文件,如果使用~/.m2目录下的settings.xml,就不会影响到Maven安装文件,升级时就不需要触动settings.xml文件。

四、不要使用IDE内嵌的Maven

无论是Eclipse还是NetBeans,当我们集成Maven时,都会安装上一个内嵌的Maven,这个内嵌的Maven通常会比较新,但不一定很稳定,而且往往也会和我们在命令行使用的Maven不是同一个版本。这里有会出现两个潜在的问题:首先,较新版本的Maven存在很多不稳定因素,容易造成一些难以理解的问题;其次,除了IDE,我们也经常还会使用命令行的Maven,如果版本不一致,容易造成构建行为的不一致,这是我们所不希望看到的。因此,我们应该在IDE中配置Maven插件时使用与命令行一致的Maven。

在m2eclipse环境中,点击菜单栏中的Windows,然后选择Preferences,在弹出的对话框中,展开左边的Maven项,选择Installation子项,在右边的面板中,我们能够看到有一个默认的Embedded Maven安装被选中了,点击Add…然后选择我们的Maven安装目录M2_HOME,添加完毕之后选择这一个外部的Maven。

 此处无图。。。

 图2-14 在Eclipse中使用外部Maven

NetBeans Maven插件默认会侦测PATH环境变量,因此会直接使用与命令行一致的Maven环境。依次点击菜单栏中的工具选项其他Maven标签栏,你就能看到如图2-15所示的配置:

 


 图2-15 在NetBeans中使用外部Maven

 

五、maven warnning 'build.plugins.plugin.version' is missing

在pom.xml中添加新的dependency:

 <dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<type>maven-plugin</type>
</dependency>
在build中添加:

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven.compiler.plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<verbal>true</verbal>
</configuration>
</plugin>
</plugins>
</build>
</project>

但是仍然有个错误,错误信息:build.plugins.plugin.version
可以看到,在pom.xml里面的<build>下面,沒有<version>。因此要多加一个version:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven.compiler.plugin</artifactId>
<version>2.1</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
<verbal>true</verbal>
</configuration>
</plugin>
</plugins>
</build>
</project>

好,解决问题。

六、如何去掉maven的[WARNING] Using platform encoding (UTF-8 actually) to copy filter

  1. <project>  
  2.   ...  
  3.   <properties>  
  4.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  5.   </properties 
  6.   ...  
  7. </project>  
分享到:
评论

相关推荐

    MAVEN使用最佳实践

    maven入门使用,很详细. 本文档介绍一些在使用Maven过程中不是必须的,但十分有用的实践。

    Maven最佳实践之一个好的parent依赖基础

    今天小编就为大家分享一篇关于Maven最佳实践之一个好的parent依赖基础,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    Maven原理和实践-培训课件.ppt

    何为Maven 构建,依赖管理,项目信息聚合 Maven核心概念 坐标,依赖,仓库,生命周期,插件 Maven最佳实践 创建、打包、发布、版本管理 项目实战 Nexus(Todo…) M2eclipse(Todo…)

    Maven 依赖之最佳实践.pdf

    附件为在阅读Maven实战时为依赖的最佳实践进行总结而输出的博客。一面加深理解,也希望能帮助需要的人

    Maven版的JPA最佳实践

    Maven版的JPA最佳实践 参考教程:http://www.cnblogs.com/ctoroad/p/4111447.html

    Maven 实战问题和最佳实践.pdf

    dependencyManagement 是表⽰依赖 jar 包的声明,即你在项⽬中的 dependencyManagement 下声明了依赖,maven 不会加 载该依赖,dependencyManagement 声明可以被继承。 dependencyManagement 的⼀个使⽤案例是当有⽗...

    Maven原理与实践(高级)

    本文档内容讲述maven的原理及其最佳的实践方式

    Maven实战 安装配置

    第2章 Maven的安装和配置7.2.1 在Windows上安装Maven8.2.2 在基于Unix的系统上安装Maven9.2.3 安装目录分析10.2.4 设置HTTP代理11.2.5 安装m2eclipse12.2.6 安装NetBeans Maven插件13.2.7 Maven安装最佳实践14.2.8 ...

    深入浅出maven3

    maven是什么 maven这个词可以翻译为“知识的积累”,也可以翻译为“专家”或“内 行”。作为apache组织中的一个颇为成功的开源项目,maven主要服务于基于 java... 提供开发的最佳实践指南; 能无缝的加入新的特性;

    Eclipse RCP与Spring OSGi技术详解与最佳实践

    《Eclipse RCP与Spring OSGi:技术详解与最佳实践》由资源的Eclipse专家亲自执笔,并得到了Eclipse官方技术社区的强烈推荐,权威性毋庸置疑!内容全面,系统讲解了利用Eclipse RCP和Spring OSGi开发大规模Java应用的...

    maven window下安装包

    第5章:坐标和依赖/5.9 最佳实践/5.9.2 依赖属性使用变量 第5章:坐标和依赖/5.9 最佳实践/5.9.3 依赖关系查看 第6章:仓库/6.1 何为Maven仓库 第6章:仓库/6.2 仓库的布局 第6章:仓库/6.3 仓库的分类 第6章:仓库/...

    Maven实战- 入门

    2.7 Maven 安装最佳实践 14. 2.8 小结 15. 第 3 章 Maven 使用入门 16. 3.1 编写 POM 17. 3.2 编写主代码 18. 3.3 编写测试代码 19. 3.4 打包和运行 20. 3.5 使用 Archetype 生成项目骨架 21. 3.6 m2eclipse 简单...

    maven-parent-poms:具有最佳实践配置的父Maven POM

    GantSign Maven父POM 具有最佳实践配置的父Maven POM。 POM仅用于一般用途,不特定于公司。Java 8 对于Java 8项目,将以下内容添加到您的POM中: &lt; project&gt; ... &lt; parent&gt; &lt; groupId&gt;...

    Maven2 的新特性.7z

    除此之外,"简化工作,使用业界公认的最佳实践"也是是 Maven2 的另一大主题,其他的新特性无处不在体现 Maven2 为简化工作而做出的努力。 2. 更少的配置文件 Maven1 和 Maven2 主要配置文件的对比: • Maven1:...

    Maven实战(高清版)

    HOME2.3.2 ~/.m22.4 设置http代理2.5 安装m2eclipse2.6 安装netbeans maven插件2.7 maven安装最佳实践2.7.1 设置maven_opts环境变量2.7.2 配置用户范围settings?xml2.7.3 不要使用ide内嵌的maven2.8 小结第...

    geomajas-project-profiling:Geomajas 分析项目

    遵循 Maven 最佳实践,pom.xml 文件不包含任何 Maven 存储库。 您必须将 Geomajas Maven 存储库 ( ) 添加到 settings.xml 文件中,该文件位于: ~/.m2/settings.xml 接下来转到源代码的根目录并运行: mvn install

    geomajas-project-deskmanager:Geomajas Deskmanager 项目

    遵循 Maven 最佳实践,pom.xml 文件不包含任何 Maven 存储库。 您必须将 Geomajas Maven 存储库 ( ) 添加到 settings.xml 文件中,该文件位于: ~/.m2/settings.xml 接下来转到源代码的根目录并运行: mvn install

    geomajas-project-sld:Geomajas SLD项目

    按照Maven最佳实践,pom.xml文件不包含任何Maven存储库。 您必须将Geomajas Maven存储库( )添加到settings.xml文件中,该文件可以位于: ~/.m2/settings.xml 接下来转到源代码的根目录并运行: mvn install

    geomajas-project-codemirror-gwt:Geomajas Codemirror GWT 包装器项目

    遵循 Maven 最佳实践,pom.xml 文件不包含任何 Maven 存储库。 您必须将 Geomajas Maven 存储库 ( ) 添加到 settings.xml 文件中,该文件位于: ~/.m2/settings.xml 接下来转到源代码的根目录并运行: mvn ...

    软件开发+Maven技术+Maven安装与配置+基础课程

    此外,课程还将介绍Maven的高级主题,包括多模块项目的构建、构建配置的定制化、以及集成到持续集成/持续部署(CI/CD)流程中的最佳实践。通过本课程的学习,学员将能够熟练运用Maven进行项目开发,掌握Maven在不同...

Global site tag (gtag.js) - Google Analytics