我的webapp主要包含两个工件:java-server.jar和js-client.war。两者都聚合/重叠并获取目标环境的其他属性文件。最后,我得到了战争文件。
使用tomcat部署一些war文件:通过脚本部署一些,但此时无关紧要。
我的方法有几件我不喜欢的事情:
如何维护,发布和部署(对maven repo)稳定/ beta网络应用?如何维护特定于目标服务器的配置设置?你如何保留不同的版本?你有很多分支吗?
谢谢,Jan
答案 0 :(得分:2)
我正在做的是使用Jenkin的额外maven构建步骤来执行
tomcat:deploy
每次构建后使用正确的maven配置文件,将构建指向我们的dev服务器。然后,当我们想要推送到暂存时,我们使用maven发布插件(再次使用Jenkins)来创建版本号不是快照的版本。假设我们然后将2.0beta3发布到分期。这可以通过以下方式完成:
tomcat:deploy -P staging-deploy
然后,配置文件确保我们使用像这样的pom条目推送到登台服务器而不是dev服务器:
<profile>
<id>deploy-staging</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<server>tomcat-staging</server>
<url>http://tomcat-staging.internal:${tomcat-staging.port}/manager/text</url>
<path>${tomcat.path}</path>
</configuration>
</plugin>
</plugins>
</build>
</profile>
最后,从舞台到现场,完全是在maven和jenkins之外完成的。我只是不相信maven不打破: - )
答案 1 :(得分:0)
我可以推荐使用像hudson这样的构建服务器。它有maven和rcs支持。 例如,您可以指定要构建的源代码的哪个分支以及要执行的maven目标。
我们还使用hudson将构建部署到我们的Web服务器。
答案 2 :(得分:0)
我的情况并不像你的情况那么复杂,所以我只能回答这个问题:
如何维护特定于目标服务器的配置设置?
我尝试外部化所有配置,以便我将完全相同的WAR文件部署到stage / prod。我使用Spring的上下文:property-placeholder标签。 WAR中有“默认”属性文件,这些文件被/etc/app/*.properties(Windows上的c:/ etc / app / *。属性)中的属性覆盖。
至于实际部署,我目前手动上传WAR文件,但计划在不久的将来实现自动化。