文档章节

jenkis 部署 配置

angle_小帅
 angle_小帅
发布于 2016/03/25 11:27
字数 1208
阅读 133
收藏 6

部署什么的 很简单大家应该都明白

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支持  哇咔咔

© 著作权归作者所有

angle_小帅
粉丝 11
博文 29
码字总数 22265
作品 0
青岛
程序员
私信 提问
一个综合的分布式项目之项目部署

项目打包有很多种方式,不管是eclipse的export还是mvn的package,最终目的就是把编译后的项目丢到服务器的tomcat下。我们要部署代码到两台上游服务器和两台下游服务器,感觉比较麻烦,最好的...

尚浩宇
2016/01/26
258
0
jenkis远程调用Shell脚本报错:Host key verification failed

Jenkins(10.0.0.21)远程(10.0.0.22)调用Shell脚本 构建部署时报错: Host key verification failed. Build step 'Execute shell' marked build as failure Finished: FAILURE 有人遇到过......

chaoo_123
2016/05/24
2.1K
2
.net core之jenkins部署

发现找不到安装包,下面我们先来配置jenkins源,并安装jenkins 访问http://192.168.91.128:8080/

weidedong
2016/09/17
16
0
Jenkins 自动构建 并发布

0.前提 有个可用的 jenkis Jenkins 集成 maven svn 自动构建打包 1. 下载deploy 插件 Deploy to container Plugin 2.修改tomcat 配置 3. 修改 jenkis 配置 4. 构建 5. 测试 捐助开发者 在兴趣...

curiousby
2017/02/24
0
0
Jenkis pipeline构建项目实践

在完成前文的jenkins server 在k8s环境部署之后,本文我们来测试在k8s集群环境中的jenkins pipeline构建项目和更新,具体环境要求如下: 1、jenkins pipeline插件安装成功 2、要更新的应用已...

ylw6006
2018/08/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【阴阳师】真蛇10层记录

蛇切黑体系 追月神 散件一速,速度越高越好(220+) 镰鼬 招财二速,速度211以上; 山兔 火灵三速,速度180-200均可; 丑女 心眼四速,速度170左右即可; 大蛇 蚌精暴击套。速度高于阴阳师即...

Areya
昨天
4
0
js动态设置元素高度

this.$refs.xxx.style.height= this.contentHeight; 元素需要绑定

Carbenson
昨天
2
0
今天的学习

今天学到了ci框架中的查询语句的where条件语句: 1、$this->db->select('')->from('')->where('id = ??')->get()->result_array();2、$this->db->select('')->from('')->where('id', '??'......

墨冥
昨天
2
0
MySQL在高并发下的订单撮合、系统使用、共享锁与排他锁保证数据一致性

前序 距离上次择文发表,两月余久。2018年也即将要结束了,目前的工作依然是与区块链应用相关的,也很荣幸在9月初受邀签约出版暂名为《区块链以太坊DApp实战开发》一书,预计在明年年初出版。...

我最喜欢三大框架
昨天
2
0
深入理解Flutter多线程

该文章属于<简书 — 刘小壮>原创,转载请注明: <简书 — 刘小壮> https://www.jianshu.com/p/54da18ed1a9e Flutter默认是单线程任务处理的,如果不开启新的线程,任务默认在主线程中处理。 ...

刘小壮
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部