码迷,mamicode.com
首页 > 其他好文 > 详细

maven属性、资源过滤、profile、不同环境构建项目

时间:2019-01-10 17:44:51      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:pass   元素   引用   def   名称   enc   open   sed   directory   

maven针对不同环境构建项目

maven使用属性、profile及资源过滤支持针对不同环境构建项目


maven属性

一、maven共有六类属性

1、最常见的是自定义属性,即在pom文件里通过<properties>元素定义的属性

2、环境变量属性,可以使用env.引用,可以使用mvn help:system查看所有的环境变量

java.env=${env.JAVA_HOME}

3、系统属性,也可以使用mvn help:system查看所有的系统属性

 ${user.home}指向了用户目录,即C:\\Users\\Administrator
 user.home=${user.home}

4、setting属性

localRepository=${settings.localRepository}

5、maven内置属性

 ${basedir}表示根目录
 project.basedir=${basedir}
 ${version}表示项目版本
 project.version=${version}

6、pom属性

技术分享图片
源码目录
sourceDirectory=${project.build.sourceDirectory}
测试类源码目录
testSourceDirectory=${project.build.testSourceDirectory}
构建目录
directory=${project.build.directory}
构建后class所在的目录
outputDirectory=${project.build.outputDirectory}
构建后测试类class所在的目录
testOutputDirectory=${project.build.testOutputDirectory}
项目组Id
groupId=${project.groupId}
构件Id
artifactId=${project.artifactId}
项目版本
version=${project.version}
构建后jar包或war包的名称,默认为${project.artifactId}-${project.version}
finalName=${project.build.finalName}
project可以省略
View Code

profile

(1) profile在pom.xml或settings.xml中都可以声明

pom.xml中的profile只对当前项目有效,用户settings.xml中的profile对该用户所有的maven项目有效,全局settings.xml中的profile对本机上所有的maven项目有效
由于pom.xml中的profile能随着pom.xml一起提交到代码仓库中、被安装到本地仓库中、被部署到远程仓库中,所以pom.xml中的frofile可以声明的元素很多,如下所示:

技术分享图片
<project>
    <repositories></repositories>
    <pluginRepositories></pluginRepositories>
    <distributionManagement></distributionManagement>
    <dependencies></dependencies>
    <dependenyManagement></dependenyManagement>
    <modules></modules>
    <properties></properties>
    <reporting></reporting>
    <build>
        <plugins></plugins>
        <defalutGoal></defalutGoal>
        <resources></resources>
        <testResources></testResources>
        <finalName></finalName>
    </build>
</project>
View Code

而settings.xml中可以声明的元素很少,只支持以下几个

技术分享图片
<project>
    <repositories></repositories>
    <pluginRepositories></pluginRepositories>
    <properties></properties>
</project>
View Code

(2)demo

技术分享图片
<project>
  ...
  <profiles>
      <profile>
          <id>dev</id>
          <properties>
              <db.url>jdbc:mysql://localhost:3306/dev</db.url>
              <db.username>root</db.username>
              <db.password>root</db.password>
          </properties>
      </profile>
      <profile>
          <id>test</id>
          <activation>
              <activeByDefault>true</activeByDefault>
          </activation>
          <properties>
              <db.url>jdbc:mysql://localhost:3306/test</db.url>
              <db.username>test</db.username>
              <db.password>test</db.password>
          </properties>
      </profile>
  </profiles>
</project>
View Code

 使用profile包裹其它元素声明与直接使用这些元素声明并无二致


 

maven属性、资源过滤、profile、不同环境构建项目

标签:pass   元素   引用   def   名称   enc   open   sed   directory   

原文地址:https://www.cnblogs.com/Mike_Chang/p/10251060.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!