Jenkins自动编译发布java工程的方法

      用Jenkins 实现java工程自动编译发布的方法如下:

1. 在linux服务器上安装好tomcat 和jdk 。

2. 下载jenkis.war 包 放到 linux服务器上。

linux-04:/home/AutoTest/jenkins # more startjenkins.sh
#!/bin/bash
java -jar jenkins.war –httpPort=9091 &
linux-04:/home/AutoTest/jenkins #
linux-04:/home/AutoTest/jenkins # ll
total 61500
drwxr-xr-x 3 root root     4096 Aug  6 11:41 D:
-rwxr--r-- 1 root root     1193 Aug  6 20:37 deploy.sh
-rwxr--r-- 1 root root     1390 Aug  6 20:36 deploy_bak.sh
drwxr-xr-x 2 root root     4096 Aug  6 17:15 history
drwxr-xr-x 3 root root     4096 Aug  6 11:41 home
-rw-r--r-- 1 root root 62881823 Jul 29 19:01 jenkins.war
-rwxr-xr-x 1 root root       53 Aug  5 19:51 startjenkins.sh

执行 ./startjenkins.sh 启动 jenkins 。


3. 在本机访问 jenkins。 新建一个任务,选择  构建一个自由风格的软件项目。


4. 我用的是SVN代码管理,选择 Subversion:

点击 Repository URL 后面的问号图标,点 this link , 配置SVN的路径和账号。


5. 构建中 使用ant 编译。

注意: 由于MyEclipse 一般是在windows下开发的。 Jenkins 把代码下载到linux 机器上后,用ant 编译,需要在linux机器上安装 ant 。并把 /home/apache-ant-1.7.1/bin 加入到PATH 中。 在 MyEclipse 中生成的 build.xml 需要改如下 4个jar包的路径, 并把这4个jar包放到 linux机器上。


    <path id="Java EE 5 Libraries.libraryclasspath">
        <pathelement location="/home/AutoTest/autoCompile/jar/javaee.jar"/>
        <pathelement location="/home/AutoTest/autoCompile/jar/jsf-impl.jar"/>
        <pathelement location="/home/AutoTest/autoCompile/jar/jsf-api.jar"/>
        <pathelement location="/home/AutoTest/autoCompile/jar/jstl-1.2.jar"/>
    </path>


ant 编译后,执行 shell脚本编译发布。并配置 构建后 E-mail 邮件通知相关的人员。


其中 deploy.sh 的内容如下:(linux编译机器和 发布的机器是同一个)

linux-04:/home/AutoTest/jenkins # more deploy.sh
#!/bin/bash
#defined
TOMCAT_HOME="/home/mobileserver/apache-tomcat-7.0.61"
TOMCAT_PORT=9090
PROJECT="$1"
#param validate
if [ $# -lt 1 ]; then 
  echo "you must use like this : ./deploy.sh <projectname> [tomcat port] [tomcat home dir]" 
  exit 
fi
if [ "$2" != "" ]; then
   TOMCAT_PORT=$2
fi
if [ "$3" != "" ]; then
   TOMCAT_HOME="$3"
fi
#shutdown tomcat
"$TOMCAT_HOME"/bin/shutdown.sh
sleep 10
echo "tomcat shutdown"
#check tomcat process
tomcat_pid=`/usr/bin/lsof -n -P -t -i :$TOMCAT_PORT`
#echo "current :" $tomcat_pid
while [ -n "$tomcat_pid" ]
do
 sleep 5
 tomcat_pid=`/usr/bin/lsof -n -P -t -i :$TOMCAT_PORT`
 echo "scan tomcat pid :" $tomcat_pid
done
#publish project
echo "scan no tomcat pid,$PROJECT publishing"

tar -zcvf   /home/AutoTest/jenkins/history/mobileserver`date +%Y%m%d%H%M%S`.tar.gz    /home/mobileserver/mobileserver2.0

rm -rf /home/mobileserver/mobileserver2.0/WEB-INF
#cp /save/$PROJECT*.war "$TOMCAT_HOME"/webapps/$PROJECT.war
cp -fr /home/AutoTest/jenkinsbuild/jobs/mobileserver/workspace/WebRoot/WEB-INF /home/mobileserver/mobileserver2.0/.

#start tomcat
"$TOMCAT_HOME"/bin/startup.sh
echo "tomcat is starting,please try to access $PROJECT conslone url"
linux-04:/home/AutoTest/jenkins #



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值