您的位置:首页 > 其它

Maven 的构建之 pom文件一些属性分析

2011-08-21 10:42 281 查看
1. Maven 聚合:

是指当有A、B、C多个需要构建的时候,我们想使用一个命令就对其进行构建。这时我们就可以使用聚合了。我们可以创建一个额外的模块D,作为一个模块,它也必须有自己的POM文件,但是这个POM文件有一些特殊的地方。

<packaging/>标签,即打包类型,必须为为pom。

<modules/>标签,必须增加modules标签。modules标签的每个属性module,对应的是每个子模块的目录路径。所以我们一般把聚合模块房子项目目录的最顶层,其它模块作为聚合模块的子目录。

2. Maven 属性:

属性的引用很简单,即${属性名},Maven有很多内置属性,如${basedir},表示项目根目录但是用的最多的还是自定义属性。自定义属性也很简单,在<properties/>标签里面定义即可。

3. Maven 资源过滤:

在不同的环境中需要的构建会有区别,比如说开发环境、测试环境以及线上环境,它们的数据库等等的配置可能不同。Maven可以针对不同的环境生成不同的构建,当然这是基于配置的。

为了应对变化的环境,我们需要把这些可能变化的属性抽离出来,如数据库配置:
database.jdbc.driver = ${db.driver}
database.jdbc.url=${db.url}
database.jdbc.username = ${db.username}
database.jdbc.passwrd = ${db.password}
这些属性可以再profile中自定义。默认情况下,Maven只会解析POM中的属性引用,如果该配置放在了项目的resources目录下,是不会被Maven解析的。
资源文件的处理实际是Maven-resources-plugin负责的,通过配置,它可以解析资源文件里面的属性,即开启资源过滤。
<build>

<resources>

<resource>

<directory>src/main</directory>

<filtering>true</filtering>

</resource>

<resource>

<directory>src/main/sql</directory>

<filtering>false</filtering>

</resource>

</resources>

<testResources>

<testResource>

<directory>...</directory>

<filtering>...</filtering>

</testResource>

</testResources>

</build>

在运行时激活制定的profile,即可指定属性引用,如mvn clean install -Pdev。会创建开发环境的构建。

4. Maven Profile:

不同环境需要不同的配置,所以Maven引入了Profile的概念。Profile的原意是轮廓,Maven就是通过不同的Profile来选择构建项目轮廓。

<profiles>

<profile>

<id>dev</id>

<properties>

<db.driver>...</db.driver>

<db.url>...</db.url>

<db.username>...</db.username>

<db.password>...</db.password>

</properties>

</profile>

<profile>

<id>test</id>

<properties>

<db.driver>...</db.driver>

<db.url>...</db.url>

<db.username>...</db.username>

<db.password>...</db.password>

</properties>

</profile>

</profiles>

Maven通过命令行激活Profile,使用-P参数,如mvn clean install -Ptest

我们可以使用如下方式来选择默认激活的Profile的方式:

<activation>

<activeByDefault>true</activeByDefault>

</activation>

当存在其它激活方式的时候,默认激活失效。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: