Maven3笔记B

Maven笔记B

使用Maven构建Web应用

使用jetty-maven-plugin进行测试(开发阶段)

  • 配置POM
<plugin>
	<groupId>org.morbay.jetty</groupId>
	<artifactId>jetty-maven-plugin</artifactid>
	<version>7.1.6.v20100715</version>
	<configuration>
		<!-- 每间隔10秒刷新,实现热部署效果 -->
		<scanIntervalSeconds>10</scanIntervalSeconds>
		<!-- 部署后的项目访问名http://ip:port/test -->
		<WebAppConfig>
			<contextPath>/test</contextPath>
		</WebAppConfig>
	</configuration>
</plugin>
  • 配置settiing.xml
    为简化命令调用,将org.mortbay.jetty添加到pluginGroups中。
<setting>
	<pluginGroups>
		<pluginGroup>org.mortbay.jetty</pluginGroup>
	</plugingroups>
</setting>
  • 使用
mvn jetty:run
mvn jetty:run -Djetty.port=9999

使用Cargo实现自动化部署

  • standalone模式
    将指定的web容器复制到指定位置,将项目部署至Web容器内并启动。
    每次启动重复上述步骤
  • existing模式
    将项目部署至指定Web容器内并启动。
    每次启动重复上述步骤
    ##版本管理
  • release:prepare 准备版本发布 依次执行下列操作
    • 检查项目是否有未提交的代码
    • 检查项目是否有快照版本的依赖
    • 根据用户的输入将快照版本升级为发布版
    • 将POM中的SCM信息更新为标签地址
    • 基于修改后的POM执行Maven构建
    • 提交POM变更。
    • 基于用户输入为代码打标签
    • 将代码从发布版升级为新的快照版
    • 提交POM变更
  • release:rollback 回退
  • release:perform 执行版本发布

灵活的构建

Maven为了支持构建的灵活性,内置了三大特性,即属性、Profile和资源过滤。

Maven属性

Maven属性分为以下6类

  • 内置属性
    主要有两个常用内置属性

    • ${basedir} 表示项目根目录,即包含pom.xml文件的目录
    • ${version} 表示项目版本
  • POM属性
    用户可以使用该类属性引用POM文件中对应元素的值,部分属性来源于超级POM。

    • ${project.build.sourcedirectory} 项目的主源码目录
    • ${project.build.testSourceDirectory} 项目的测试源码目录
    • ${project.build.directory} 项目构建输出目录
    • ${project.outputDirectory} 项目主代码编译输出目录
    • ${project.testOutputdirectory} 项目测试主代码编译输出目录
    • ${project.groupId} 项目的groupId
    • ${project.artifactId} 项目的artifactId
    • p r o j e c t . v e r s i o n 项 目 的 v e r s i o n , 与 {project.version} 项目的version,与 project.versionversion{version}等价。
    • p r o j e c t . b u i l d . f i n a l N a m e 项 目 打 包 输 出 文 件 的 名 称 , 默 认 为 {project.build.finalName} 项目打包输出文件的名称,默认为 project.build.finalName{project.artifactId}-${project.version}
  • 自定义属性
    用户可以在POM的元素下自定义Maven属性

  • Setting属性
    与POM属性同理,用户使用以settings.开头的属性引用setting.xml文件中XML元素的值。

    • ${setting.localrepository} 指向用户本地仓库的地址
  • Jave系统属性
    所有JAVA系统属性都可以使用Maven属性引用,用户可以使用mvn help:system命令查看所有的java系统属性。

    • ${user.home} 指向了用户目录
  • 环境变量属性
    所有环境变量都可以使用env.开头的Maven属性引用。用户可以使用mvn help:system命令查看所有的环境变量属性。

    • ${env.JAVA_HOME} 指代了JAVA_HOME环境变量的值.

资源过滤

使用Maven属性替代项目中资源配置文件中的可变属性。
1.在项目配置文件中使用Maven属性
database.jdbc.username=${db.username}
2.在pom.xml中设定属性值

<profiles>
	<profile>
		<id>dev</id>
		<properties>
			<db.username>root</db.username>
		</properties>
	</profile>
</profiles>

3.开启属性过滤功能
资源文件的处理是maven-resources-plugin插件做的事情,它默认的行为只是将项目主资源文件复制到主代码编译输出目录中,将测试资源文件复制到测试代码编译输出目录中。通过对其配置可以开启资源过滤功能。
Maven的默认maven-resources-plugin是在超级POM中。所以要对超级POM做如下修改

<resources>
	<resource>
		<!-- 主资源目录 -->
		<directory>${project.basedir}/src/main/resources</directory>
		<filtering>true</filtering>
	</resource>
</resources>

<testResources>
	<testResource>
		<!-- 测试资源目录 -->
		<directory>${project.basedir}/src/main/resources</directory>
		<filtering>true</filtering>
	</testResource>
</testResources>

4.执行

mvn clean install -Pdev
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值