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
这样在外办公时再也不用担心持续集成失败的问题了。