现在的位置: 首页 > 综合 > 正文

maven灵活解决环境问题

2013年12月11日 ⁄ 综合 ⁄ 共 1180字 ⁄ 字号 评论关闭

maven构建之灵活不必细说,这里举个实际遇到的场景,并给出我如何解决。

由于服务器紧张,我的hudson服务器和nexus服务器是部署在同一台的,

而这台服务器的外网是映射出去的公网地址。

也就是说本机通过外网地址是无法访问本机的。

代码是托管在Github的,每次push代码到Github,hudson就会做检查,如果发现更新就会做持续集成。

在公司内网地址没问题,但是在外办公或者家里,我项目写的就是外网地址,然后更新提交push。

hudson检查,把代码拉在本地就是公网地址了,然后一集成就出错。因为我构建部署的地址是外网。

那么该如何解决这个纠结的问题呢,maven已经帮你想到了。

请看配置文件:

	<profiles>
		<profile>
			<id>inner</id>
			<properties>
				<distribution.repository>192.168.125.51</distribution.repository>
			</properties>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>outer</id>
			<properties>
				<distribution.repository>113.128.126.149</distribution.repository>
			</properties>
		</profile>
	</profiles>
	

	<distributionManagement>
		<repository>
			<id>account</id>
			<name>account Releases Repository</name>
			<url>http://${distribution.repository}:8080/nexus/content/repositories/account/</url>
		</repository>
		<snapshotRepository>
			<id>account-snapshots</id>
			<name>account Snapshot Repository</name>
			<url>http://${distribution.repository}:8080/nexus/content/repositories/account-snapshots/</url>
		</snapshotRepository>
	</distributionManagement>

用profile做了2个配置,一个内网一个外网,默认开启内网。

这样我在公司运行时直接使用,

mvn clean deploy

在外办公使用

mvn clean deploy -Pouter

而hudson执行的命令时

mvn clean deploy

这样在外办公时再也不用担心持续集成失败的问题了。

抱歉!评论已关闭.