博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
maven-profile
阅读量:6611 次
发布时间:2019-06-24

本文共 2305 字,大约阅读时间需要 7 分钟。

profile的目的是什么?

在我们实际的开发过程中会有dev、test、product等环境,或则不同的操作OS。而它们可能需要的配置参数是不一样的,比如:数据库。通常的做法就是在切换环境的同时修改我们的代码或则同一个properties文件。基于此,maven2.0给开发提供了一个更好的选择,profiles就是用于不同环境构建不同的project.

profile可以配置的地方有哪些?

  • 项目中的pom.xml
  • 系统用户中的maven setting:%USER_HOME%/.m2/settings.xml
  • 全局的maven setting:(${maven.home}/conf/settings.xml)
  • 位于project basedir 中的profile descriptor:(profiles.xml)

profile配置不同的地方的作用是什么?

本质上分为两类:一种是maven setting,作用于所有的project,通常是将不影响project build的配置放在此类文件中。如:<repositories>、<pluginRepositories>、<properties>(可以通过通配符被pom中properties属性引用)。另一种则是pom.xml,作用于单个project或其子module,通常是将影响project build的参数配置在pom.xml中profile中,如:<resources>、<properites>。

profile的激活方式?

  • mvn 命令行 -P,如:
    mvn groupId:artifactId:goal -P profile-1,profile-2
  • settings.xml中的<activeProfiles>标签,如:
    ...
    profile-1
    ...
* 根据JDK环境(自动检测),如:

<profiles>

<profile>
<activation>
<jdk>1.4</jdk>
</activation>
...
</profile>
</profiles>

* 根据OS,如:

<profiles>

<profile>
<activation>
<os>
<name>Windows XP</name>
<family>Windows</family>
<arch>x86</arch>
<version>5.1.2600</version>
</os>
</activation>
...
</profile>
</profiles>

* 根据
中的
,并同时来命令行中指定参数:mvn groupId:artifactId:goal -Ddebug=false。如:

<profiles>

<profile>
<activation>
<property>
<name>debug</name>
</property>
</activation>
...
</profile>
</profiles>

* 根据
中的
自动激活,如:

<profiles>

<profile>
<id>profile-1</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
...
</profile>
</profiles>

* 根据
中的
,如:

<profiles>

<profile>
<activation>
<file>
<missing>target/generated-sources/axistools/wsdl2java/org/apache/maven</missing>
</file>
</activation>
...
</profile>
</profiles>

**pom.xml中的profile能修改哪些内容?*** 
*
*
*
*
(not actually available in the main POM, but used behind the scenes)*
*
*
*
* a subset of the
element, which consists of: *
*
*
*
**如何查看哪些profiles是生效的?** mvn help:active-profiles mvn help:active-profiles -P appserverConfig-dev mvn help:active-profiles -Denv=dev参考文档:http://maven.apache.org/guides/introduction/introduction-to-profiles.html

转载于:https://blog.51cto.com/881206524/2112662

你可能感兴趣的文章
CentOS 6.5下PXE+Kickstart无人值守安装操作系统
查看>>
xtrapivotcontrol 控件用法及相关属性
查看>>
Shell脚本 常用命令总结 二
查看>>
冰球游戏大概的模块
查看>>
JS模拟select下拉菜单
查看>>
线性方程组迭代求解——Jacobi迭代算法(Python实现)
查看>>
vmware workstation14永久激活密钥分享
查看>>
iOS 多线程 之 GCD(大中枢派发)(一)
查看>>
Myeclipse中打开接口实现类的快捷键
查看>>
删除sql dump中的AUTO_INCREMENT
查看>>
使用JdbcTemplate和JdbcDaoSupport
查看>>
C博客作业--指针
查看>>
版本12.2.0.1.0数据库,复制种子数据库快速创建租户数据库PDB
查看>>
mysql for Mac 下创建数据表中文显示为?的解决方法
查看>>
Glibc 和 uClibc
查看>>
VMware 虚拟机的虚拟磁盘编程知识点扫盲之二
查看>>
vs2012中自带IIS如何让其他电脑访问
查看>>
关于termux在手机上搭载Linux系统,python,ssh
查看>>
Redux:异步操作
查看>>
Mysql学习第三课-分析二进制日志进行增量备份和还原
查看>>