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>
当存在其它激活方式的时候,默认激活失效。
是指当有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>
当存在其它激活方式的时候,默认激活失效。
相关文章推荐
- Maven 的构建之 pom文件一些属性分析
- Maven 的构建之 pom文件一些属性分析
- eclipse构建maven项目,以及创建完成后pom文件报错
- Maven项目中pom文件分析
- Maven项目中pom文件分析
- maven 构建项目时 java路径下配置属性文件相关
- Maven-pom文件内置属性
- maven构建pom.xml文件理解
- Maven super Pom中定义的一些属性
- SpringMVC构建REST接口:第二篇 配置Maven的pom.xml文件
- springboot+maven打jar包运行java -jar,报错没有主清单属性;pom文件添加build修正问题
- 使用maven构建ssm项目的pom文件
- Maven 构件工程的属性文件-----pom.xml文件
- Maven项目中pom文件分析
- Maven构建SSH项目pom文件依赖包
- Maven中的POM文件分析(一)
- Maven中的POM文件分析(二)
- Maven构建SSM框架JavaWeb项目pom.xml文件整理
- maven项目中pom.xml一些属性记录
- eclipse构建maven项目,以及创建完成后pom文件报错