Maven pom.xml配置

Maven安装

Maven内存调整

Linux环境

vi $M2_HOME/bin/mvn
MAVEN_OPTS 后面加上 -Xms128m -Xmx512m
调整后如下:
MAVEN_OPTS="(concat_lines "MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS -Xms128m -Xmx512m"

测试调整结果 mvn help:system
如下图

私服修改

pom.xml 参数说明

pom.xml文件是一个项目最核心的maven配置文件,包含了大量的信息,maven正是基于这里的配置信息来对工程进行构建等管理工作。一个最最基本的pom.xml文件如maven生成的pom.xml所示。

<project>:pom.xml中的顶层元素

<modelVersion>:POM本身的版本号,一般很少变化

<groupId>:创建这个项目的公司或者组织,一般用公司网站后缀,比如com.company,或者cn.company

<artifactId>:这个项目的唯一标识,一般生成的jar包名称,会是<artifactId>-<version>.<extension>这个格式,比如说myapp-1.0.jar

<packaging>:要用的打包类型,比如jar,war,等等。

<version>:这个项目的版本号

<name>:这个项目用于展示的名称,一般在生成文档的时候使用

<url>:这是这个项目的文档能下载的站点url,一般用于生成文档

<description>:用于项目的描述

依赖范围 scope

<scope></scope>

maven有三套classpath,classpath,就是项目中用到的各种依赖的类,jvm在运行的时候需要去classpath下面加载对应的类

依赖范围就是用来控制依赖包与这三种classpath的关系的。

简单来说,不同的依赖范围,会导致那个依赖包可能在编译、测试或者打包运行的时候,有时候可以使用,有时候不能够使用

compile:默认,对编译、测试和运行的classpath都有效。一般都是用这种scope

test:仅仅对于运行测试代码的classpath有效,编译或者运行主代码的时候无效,仅仅测试代码需要用的依赖一般都会设置为这个范围,比如junit。一些测试框架,或者只有在测试代码中才会使用的一些依赖,会设置为test,这个的好处在于说,打包的时候这种test scope的依是不会放到最终的发布包里去的。减少发布包的体积。

provided:编译和测试的时候有效,但是在运行的时候无效,因为可能环境已经提供了,比如servlet-api,一般就是这个范围,在运行的时候,servlet容器会提供依赖。servlet-api是用来开发java web项目的,可能你在开发代码和执行单元测试的时候,需要在pom.xml里面声明这个servlet-api的依赖,因为要写代码和测试代码。但是最终打完包之后,放到tomcat容器里面去跑的时候,是不需要将这个servlet-api的依赖包打入发布包中的,因为tomcat容器本身就会给你提供servlet-api的包。

runtime:测试和运行classpath有效,但是编译代码时无效,比如jdbc的驱动实现类,比如mysql驱动。因为写代码的时候是基于javax.sql包下的标准接口去写代码的。然后在测试的时候需要用这个包,在实际运行的时候才需要用这个包的,但是编译的时候只要javax.sql接口就可以了,不需要mysql驱动类。一般我们声明mysql驱动的时候,不会设置为runtime,因为也许你开发代码的时候会用到mysql驱动特定的api接口,不仅仅只是用javax.sql。

原创文章,转载请注明: 转载自LoserZhao – 诗和远方[ http://www.loserzhao.com/ ]

本文链接地址: http://www.loserzhao.com/java/maven-pom-xml-configuration.html

文章的脚注信息由WordPress的wp-posturl插件自动生成

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

使用新浪微博登陆