`
x7700
  • 浏览: 55610 次
  • 性别: 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 是一个强大的项目管理和构建工具,它简化了Java应用程序的构建过程,通过一套约定优于配置的原则,使得项目构建、依赖管理和文档生成等工作变得标准化。以下是一些在使用Maven时可以...

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

    Maven 最佳实践之一个好的 parent 依赖基础 Maven 是一个流行的项目管理和构建工具,它提供了许多功能来帮助开发者管理项目依赖关系。今天,我们将讨论如何使用 parent 依赖来控制依赖版本,从而避免版本冲突。 ...

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

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

    【超级好用】maven 3.6.1

    ### Maven最佳实践 - **保持POM简洁**:避免在POM中添加不必要的配置,尽量利用Maven的默认设置。 - **使用父POM**:多个项目共享相同配置时,可以创建一个父POM来统一管理。 - **版本管理**:遵循 Semantic ...

    <<Maven权威指南>>+<<Maven in Action>> pdf扫描版丛书

    1. Maven最佳实践:提供了一些实际项目中如何有效使用Maven的经验和建议。 2. 敏捷开发与持续集成:讲解如何利用Maven与敏捷开发方法(如Scrum、XP)结合,以及如何与持续集成工具(如Jenkins、Hudson)集成。 3. ...

    maven使用文档,maven使用文档

    - [Maven 最佳实践](http://www.mergere.com/m2book_download.jsp) - [Maven 教程](http://www.mkyong.com/maven/) 以上内容涵盖了 Maven 的基本使用方法及其核心概念。对于初学者来说,理解 Maven 的工作原理...

    Maven权威指南中文版及相关实例

    ### Maven最佳实践 1. **遵循约定优于配置**:Maven有标准的目录结构,如src/main/java存放源码,src/test/java存放测试代码。 2. **合理设置POM**:确保POM文件简洁且准确,避免过度配置。 3. **使用依赖管理**...

    Maven视频教程

    ### Maven最佳实践与进阶主题 1. **多模块项目**:介绍如何使用Maven来管理多模块项目,包括模块之间的依赖关系和构建顺序。 2. **自动化构建与持续集成**:探讨如何结合Maven与其他工具(如Jenkins)实现自动化的...

    maven-3.5.4

    ### Maven最佳实践 1. 遵循约定优于配置的原则,保持项目结构的一致性。 2. 使用版本控制工具(如Git)管理代码,避免版本混乱。 3. 尽量减少直接依赖本地JAR,依赖应来源于远程仓库。 4. 定期更新依赖,以获得最新...

    maven 使用入门第三章

    ### Maven最佳实践 - **保持POM的整洁和有序**:合理组织POM结构,避免冗余配置。 - **使用标准目录结构**:遵循Maven推荐的目录结构,便于工具识别和处理。 - **依赖管理策略**:定期更新依赖版本,使用版本锁定...

    收集到的maven学习资源

    这个maven学习资源压缩包可能包含了POM配置示例、Maven命令行操作指南、插件使用教程、Maven最佳实践文档等,这些都是学习Maven的重要材料。通过深入学习和实践,你将能够充分利用Maven的强大功能,提升自己的Java...

    BetterBuildsWithMaven

    #### 八、Maven最佳实践 为了更好地利用Maven,以下是一些推荐的最佳实践: 1. **遵循约定优于配置原则**: Maven内部已经定义了许多默认行为和约定,遵循这些约定可以减少不必要的配置工作。 2. **使用版本控制...

    Maven实战资料教程

    #### 七、Maven最佳实践 1. **统一项目结构**:遵循Maven默认的项目结构有助于提高团队协作效率。 2. **使用插件**:合理利用Maven插件可以提高构建效率,减少错误。 3. **依赖管理**:合理规划依赖管理策略,避免...

    Maven实战中文版

    #### 四、Maven最佳实践 1. **统一项目构建方式** - 使用Maven统一项目构建的方式有助于团队成员之间的协作。 - 统一的构建规则可以减少构建错误和构建时间。 2. **依赖管理** - 保持依赖版本的一致性非常重要...

    Maven版的JPA最佳实践

    **Maven版的JPA最佳实践** 在Java开发中,Maven作为项目构建工具,而JPA(Java Persistence API)则是用于对象关系映射(ORM)的标准,它们结合使用能够帮助开发者更高效地管理和操作数据库。本文将深入探讨在Maven...

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

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

    Maven使用讲解 .

    Maven最佳实践 - **保持POM简洁**: 避免过度配置,遵循最小化原则,尽量使用Maven默认配置。 - **使用版本管理**: 为项目依赖设置明确的版本号,避免使用最新的SNAPSHOT版本。 - **合理划分模块**: 根据功能或...

    Better Builds with Maven

    #### 四、Maven最佳实践 ##### 1. **统一构建规范** - 使用相同的构建规范,如统一的目录结构、文件命名规则等,可以提高团队间的协作效率。 ##### 2. **优化依赖管理** - 定期审查项目依赖,避免使用过时或存在...

Global site tag (gtag.js) - Google Analytics