您的位置:首页 > 其它

jenkis 部署 配置

2016-03-25 11:27 288 查看
部署什么的 很简单大家应该都明白

1去官网下个war

2 ubuntu

wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins


jekins 的主目录是/var/lib/jenkins

下面的workspace 是他默认的checkdown目录

安装后会默认启动

如果想改端口那么更改/etc/init.d/jenkins.sh 里面的8080端口就行

启动起来后 去系统设置里面设置svn版本和地址 账户名密码 jdk

然后新建项目

注意Item名称 就是你后来checkdown下来workspace下的文件夹名称(最好别中文)

然后下一步 进入配置项目的 页面

丢弃旧的构建 选上(多少天自己设置)

源码管理 选 Subversion

Repository URL 填写自己的svn地址

Local module directory (optional) 这个是 /workspace/XXXXX/检出的代码 (其中的XXXX)

没说的 默认

构建触发器 选择Poll SCM 当svn有提交的时候 构建

时间间隔 15 * * * *
去抓取svn更新记录的时间间隔 15分钟 后面依次是 小时 天 月 年

在最下面 你会看到增加构建步骤

选择 execute shell 然后填入 想要 在构建后执行的 linux脚本 命令

比如 ant后 移动war包 然后 重启tomcat

ant

BUILD_ID=656412

/opt/temp/tomcat/bin/shutdown.sh

rm -rf /opt/temp/tomcat/webapps/ROOT

cp -f MobileServer.war /opt/temp/tomcat/webapps/ROOT.war

sleep 5

/opt/temp/tomcat/bin/startup.sh


需要注意 build_id 随便填 中间需要睡眠5秒 这样才能执行成功 启动tomcat命令

在tomcat里conf下的tomcat-users.xml 需要开启命令操作tomcat

<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>


最后 献上 ant 的build.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<!-- 定义一个工程,默认任务为warFile。 -->
<project name="MobileServer" default="warFile" basedir=".">
<!-- 导入配置信息-->
<property file="build.properties"/>

<!-- 项目名称 -->
<property name="webapp" value="${webapp.name}"/>
<!-- 定义属性,打成war包的名称。 -->
<property name="warFileName" value="${web.war}"/>

<!-- tomcat配置信息 -->
<property name="tomcat-home" value="${tomcat.home}"/>
<property name="remote-url" value="${tomcat.url}"/>
<property name="username" value="${tomcat.username}"/>
<property name="password" value="${tomcat.password}"/>
<property name="path" value="${tomcat.context}"/>

<path id="catalina-ant-classpath">
<fileset dir="${tomcat.home}/lib">
<include name="catalina-ant.jar"/>
<include name="tomcat-coyote.jar"/>
<include name="tomcat-util.jar"/>
</fileset>
<fileset dir="${tomcat.home}/bin">
<include name="tomcat-juli.jar"/>
</fileset>
</path>

<!-- 定义路径,编译java文件时用到的jar包。 -->
<path id="project-classpath">
<fileset dir="WebRoot/WEB-INF/lib" includes="*.jar" />
<fileset dir="${tomcat-home}/lib" includes="*.jar" />
</path>

<!-- Configure the custom Ant tasks for the Manager application -->
<target name="_def_tomcat_tasks">
<!-- tasks: deploy,undeploy,reload,stop,start,list,roles,resources -->
<taskdef name="deploy"    classname="org.apache.catalina.ant.DeployTask" classpathref="catalina-ant-classpath"/>
<taskdef name="list"      classname="org.apache.catalina.ant.ListTask" classpathref="catalina-ant-classpath"/>
<taskdef name="reload"    classname="org.apache.catalina.ant.ReloadTask" classpathref="catalina-ant-classpath"/>
<taskdef name="resources" classname="org.apache.catalina.ant.ResourcesTask" classpathref="catalina-ant-classpath"/>
<!-- <taskdef name="roles"     classname="org.apache.catalina.ant.RolesTask" classpathref="catalina-ant-classpath"/> -->
<taskdef name="start"     classname="org.apache.catalina.ant.StartTask" classpathref="catalina-ant-classpath"/>
<taskdef name="stop"      classname="org.apache.catalina.ant.StopTask" classpathref="catalina-ant-classpath"/>
<taskdef name="undeploy"  classname="org.apache.catalina.ant.UndeployTask" classpathref="catalina-ant-classpath"/>
</target>

<!-- 定义任务,清空任务:清空原有的class文件,创建新的build路径。 -->
<target name="clean">
<delete dir="${basedir}/build" />
<mkdir dir="${basedir}/build" />
</target>

<!-- 定义任务,编译src文件夹中的java文件,编译后的class文件放到创建的文件夹下。 -->
<target name="compile" depends="clean">
<javac srcdir="${basedir}/src" destdir="${basedir}/build" includeantruntime="false" encoding="utf-8"  debug="on" >
<classpath refid="project-classpath">
</classpath>
</javac>
</target>

<!-- 定义默认任务,将class文件集合成jar包。 -->
<target name="warFile" depends="compile">
<!-- 删除原有war包。 -->
<echo message="delete ${basedir}/${warFileName}"/>
<delete dir="${basedir}/${warFileName}" />

<!-- 建立新war包。 -->
<war destfile="${basedir}/${warFileName}" webxml="${basedir}/WebRoot/WEB-INF/web.xml">
<!-- 将非jar和非class文件拷贝到war包的对应路径下。 -->
<fileset dir="${basedir}/WebRoot">
<include name="**/**.*" />
<exclude name="**/*.jar"/>
<exclude name="**/*.class"/>
</fileset>
<!-- 将jar和class文件拷贝到war包的对应路径下。 -->
<lib dir="${basedir}/WebRoot/WEB-INF/lib" />
<classes dir="${basedir}/build" />
</war>
</target>

<target name="redeploy" description="Remove and Install web application" depends="_def_tomcat_tasks">
<antcall target="stop"/>
<antcall target="undeploy"/>
<antcall target="deploy"/>
</target>

<target name="deploy" description="Install web application" depends="_def_tomcat_tasks,warFile">
<echo message="${remote-url}"/>
<echo message="${username}"/>
<echo message="${password}"/>
<echo message="${warFileName}"/>
<deploy url="${remote-url}" username="${username}" password="${password}" path="${path}" war="${warFileName}" update="true" />
</target>

<target name="undeploy" description="Remove web application" depends="_def_tomcat_tasks">
<undeploy url="${remote-url}" username="${username}" password="${password}" path="${path}" />
</target>

<target name="reload" description="Reload web application" depends="_def_tomcat_tasks">
<echo message="reload" />
<reload  url="${remote-url}" username="${username}" password="${password}" path="${path}"/>
</target>

<target name="stop" description="stop web application" depends="_def_tomcat_tasks">
<echo message="stop" />
<stop  url="${remote-url}" username="${username}" password="${password}" path="${path}"/>
</target>

</project>

别忘了 javac标签里的 debug="on"
只有这样 才能 让spring mvc的注解参数 省略@标签(模拟在eclipse里 编译) 否则报错

build.properties

webapp.name=MobileServer
web.root=web
web.war=MobileServer.war
increment.file=patch.txt

javac.debuglevel=source,lines,vars
javac.target=1.6
javac.source=1.6
javac.debug=true

tomcat.home=/opt/temp/tomcat
tomcat.url=http://192.168.1.250:8888/manager/text
tomcat.username=admin
tomcat.password=admin
tomcat.context=/


这里只用了ant 来编译文件 至于那个delpoy 不好使 不知道为什么 总报错 所以才决定用 shell脚本去重启的 ant以后研究

还有一种决绝方案 就是 提交编译后的class文件 那么 jenkins 就会连同编译后的文件 一起部署了

这里要感谢 安明 童鞋的 ant支持 哇咔咔
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jenkins