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