Maven

POM是项目对象模型(Project Object Model)的缩写
<scope>默认值是compile
maven中properties值可以覆盖父pom中定义的同名值

在这里插入图片描述

maven是单继承,可以通过<scope>import</scope>来解决(个人理解,这里import进来的也只是dependendecyManagement部分)
<scope>import</scope>只能用在dependendecyManagement里的dependencies里的dependency上
dependendecyManagement里的版本管理不光可以用于子项目dependencies的版本管理,同样可用于本pom文件中的dependencies里。
在创建Maven工程后,插件配置中通常会用到一些Maven变量,因此需要找个地方对这些变量进行统一定义,下面介绍如何定义自定义变量。

在根节点project下增加properties节点,所有自定义变量均可以定义在此节点内,如下所示:
<!-- 全局属性配置 -->  
<project>
	<properties>  
	    <jilegeji.version>1.2.4</jilegeji.version>  
	</properties>
</project>

Maven内置变量说明:
${basedir} 项目根目录
${project.build.directory} 构建目录,缺省为target
${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}
${project.packaging} 打包类型,缺省为jar
${project.xxx} 当前pom文件的任意节点的内容

关于内置变量他们有默认值。也都可以重新指定。重新指定值的方式
不是
<project>
	<properties>  
	    <project.build.finalName>1.2.4</project.build.finalName>  
	</properties>
</project>
而是
<project>
	<build>
		<finalName>jilegeji</finalName>
	</build>
</project>

注意:${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}指的是target包下的jar包名称。即package后的名字。
把jar包安装到maven库中的过程是install。这个过程是可以重新命名的。即将jilegeji.jar重命名为${project.artifactId}-${project.version}了。
<project>
	<build>
		<finalName>jilegeji</finalName>
	</build>
</project>

其他
setting属性
用户可以使用以settings开头的属性引用settings.xml中xml元素的值,如${settings.localRepository}指向用户本地仓库的地址。

java系统属性
maven可以使用当前java系统的属性,如${user.home}指向了用户目录。

环境变量属性
env变量,暴露了你操作系统或者shell的环境变量。便 如在Maven POM中一个对${env.PATH}的引用将会被${PATH}环境变量替换,在Windows中为%PATH%。所有环境变量都可以使用以env.开头的属性。如:${env.JAVA_HOE}。
当activeProfiles有多个值时,按顺序执行。当某一个生效后,后面的就不会再执行了。
当拥有多项重复配置时,优先级排序为:pom.xml>局部settings.xml>全局settings.xml
<profiles>
	<profile>
       <id>jilegeji</id>
       <activation>
           <activeByDefault>true</activeByDefault>
           <!--通过jdk版本-->
           <!--当jdk环境版本为1.5时,此profile被激活-->
           <jdk>1.5</jdk>
           <!--当jdk环境版本1.5或以上时,此profile被激活-->
           <jdk>[1.5,)</jdk>

           <!--根据当前操作系统-->
           <os>
               <name>Windows XP</name>
               <family>Windows</family>
               <arch>x86</arch>
               <version>5.1.2600</version>
           </os>

           <!--通过系统环境变量,name-value自定义-->
           <property>
               <name>env</name>
               <value>test</value>
           </property>

           <!--通过文件的存在或缺失-->
           <file>
               <missing>target/generated-sources/axistools/wsdl2java/
                   com/companyname/group</missing>
               <exists/>
           </file>
       </activation>
       <properties>
       		<profiles.active>jilegeji</profiles.active>
       	</properties>
    </profile>
    ...
</profiles>

激活profile的方式有三种:
 1. mvn clean package -Pjilegeji
 2. 通过<activation>属性,有很多触发条件。如上所示。
 3. settings.xml中使用activeProfiles指定
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值