java部署平台_开源Java自动化部署平台JDeploy

JDeploy是Java + Shell实现的基于Linux系统的自动化、可视化的项目部署平台,能部署Java服务、Java Web项目,可以简化项目部署操作,无需繁琐的黑窗口SSH指令及Jenkins复杂的配置。

传统部署方式:从SVN/GIT服务器检出代码->在IDE中打包->将包传到服务器->SSH连上服务器->敲指令启动/停止

JDeploy部署:创建项目->一键部署/启动/停止

* 检出代码、打包、启动、停止等操作通过Shell脚本自动执行。

源码[View on Github]:https://github.com/wucao/JDeploy

【* 如果你对JDeploy感兴趣,请在Github点Star】

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

在Linux上部署JDeploy

服务器环境:Linux(不支持Windows),需要Java环境和Maven环境,支持java和mvn命令。

创建数据库(MySQL)

运行SQL文件创建数据库:doc/sql.sql

Shell

JDeploy自动化部署平台是基于Shell脚本实现。

Java项目部署Shell脚本:doc/shell/javadeploy

Java Web项目部署Shell脚本:doc/shell/javawebdeploy

Shell脚本的目录位置需要配置在config.properties中。

Jetty

JDeploy自动化部署平台Java Web项目部署是基于Jetty服务器的。

需要自行下载Jetty服务器,并在config.properties中配置Jetty目录下start.jar路径。

配置文件

配置文件:src/main/resources/config.properties

需要配置数据库连接信息、Shell脚本位置、Jetty位置、项目部署位置。

部署

以上配置完成后,将项目部署在Jetty/Tomcat服务器上即可。

Java项目部署

新建项目

在“Java项目部署”选项中点击“创建”按钮,进入创建页面。需要填写“项目名称”、“finalName”、“SVN地址”,例如:

项目名称:JDeploy测试Java项目

finalName:javadeploy

注:finalName需要填写部署的项目pom.xml中配置的finalName,如javadeploy

部署项目

在项目详情页面点击“部署”按钮,会从SVN中检出最新版本代码,并打包运行。

重启和停止

如果项目已经完成部署,可以通过点击“重启”或者“停止”按钮来重启或停止。

查看运行状态和显示日志

可在“运行状态”面板中查看程序运行状态,点击“查看日志”可以查看程序在控制台输入的日志。

对Java项目要求

1、使用Maven管理项目,通过mvn clean package可以打可运行的jar包,创建项目时填写的finalName和pom.xml中的finalName一致。

2、jar包可以通过java -jar xxx.jar直接运行(包含依赖包,并配置好main方法所在Class)。

建议使用maven-shade-plugin插件:

org.apache.maven.plugins

maven-shade-plugin

2.3

package

shade

com.xxg.jdeploy.test.javadeploy.Main

META-INF/spring.handlers

META-INF/spring.schemas

Java Web项目部署

新建项目

在“Java Web项目部署”选项中点击“创建”按钮,进入创建页面。需要填写“项目名称”、“finalName”、“contextPath”、“端口号”、“SVN地址”,例如:

项目名称:JDeploy测试Java Web项目

finalName:javawebdeploy

contextPath:/jdploytest(也可以填写’/’)

端口号:8080

注:finalName需要填写部署的项目pom.xml中配置的finalName,如javawebdeploy

部署项目

在项目详情页面点击“部署”按钮,会从SVN中检出最新版本代码,并打包运行。

重启和停止

如果项目已经完成部署,可以通过点击“重启”或者“停止”按钮来重启或停止。

查看运行状态和显示日志

可在“运行状态”面板中查看程序运行状态,点击“查看日志”可以查看程序在控制台输入的日志。可用浏览器访问http://ip:port/contextPath。

对Java Web项目要求

使用Maven管理项目,通过mvn clean package可以打成war包,创建项目时填写的finalName和pom.xml中的finalName一致。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

A*算法在最短路问题的应用及其使用举例

1 A*算法 A*算法在人工智能中是一种典型的启发式搜索算法,启发中的估价是用估价函数表示的: 其中f(n)是节点n的估价函数,g(n)表示实际状态空间中从初始节点到n节点的实际代价,h(n)是从n到目标节点最佳路径的估计代价。另外定义h(n…

pytorch 使用cpu_想读读PyTorch底层代码?这份内核机制简介送给你

机器之心报道参与:思源学习 PyTorch 比较简单,但你能学习 PyTorch 内部机制吗?最近,有 14 年 ML 经验的大神 Christian 介绍了 PyTorch 的内核机制。虽然在实际使用中并不需要这些知识,但探索 PyTorch 内核能大大提升我…

java web 自定义标签_JavaWeb学习——自定义标签

自定义标签一、自定义标签概述使用标准JSP访问、操作JavaBean,是实现展现(HTML)与业务实现(Java代码)分离的第一步。然而,标准方法功能不够强大,以至于开发者无法仅仅使用它们开发应用,还要在JSP页面中使用Java代码。介于JavaBean…

739. Daily Temperatures - LeetCode

Question 739. Daily Temperatures Solution 题目大意:比今天温度还要高还需要几天 思路:笨方法实现,每次遍历未来几天,比今天温度高,就坐标减 Java实现: public int[] dailyTemperatures(int[] temperatur…

Android 抽屉效果Demo

2019独角兽企业重金招聘Python工程师标准>>> Android 抽屉效果Demo。 转载:http://www.adobex.com/android/source/details/00000110.htm 转载于:https://my.oschina.net/androidcode/blog/103821

DIV中文字不换行解决办法

解决办法如下:word-wrap : normal | break-word设置或检索当当前行超过指定容器的边界时是否断开转行。normal:控制连续文本换行。break-word:内容将在边界内换行。如果需要,词内换行(word-break&#xff0…

python竞赛试题及答案_竞赛信息 | 蓝桥杯大赛Python组

蓝桥杯大赛 青少年创意编程Python组 竞赛规则及样题 — 竞赛规则 — 1 竞赛时长 Python编程组竞赛的选拔赛、省赛及国赛,竞赛时长均为120分钟,详细赛程安排另行通知。 2 竞赛形式 竞赛形式为个人赛,一人一机。 选手须自带笔记本计算机&#x…

Civil 3D 中使用COM API导入DEM数据创建曲面

Civil 3D提供的基于.net的API和基于COM的API,现在推荐大家使用.net API,但有时也需要使用COM API。 这个例子演示如何使用COM API来导入DEM数据生成Civil 3D曲面。 Civil 3D开发中使用COM API需要添加的引用比较啰嗦,建议使用向导创建项目简化操作&#…

牛客网第4场A

链接:https://www.nowcoder.com/acm/contest/142/A 来源:牛客网题目描述 A ternary string is a sequence of digits, where each digit is either 0, 1, or 2. Chiaki has a ternary string s which can self-reproduce. Every second, a digit 0 is i…

谈谈NiTE 2手部跟踪在彩色图像上的显示

主要内容: NiTE2手部跟踪流程代码演示总结一、NiTE2手部跟踪流程 我自己都感觉到天天在重复着相同的代码,但我觉得没什么不好的,对于新东西的学习只有在重复再重复的过程中,才能积累经验,较少犯“低级错误”的几率&…

java 应用是单机集群_【架构】Tomcat单机部署多应用Windows

Tomcat单机部署多应用-Windows1、添加新增的Tomcat相关环境变量CATALINA_BASE C:\tomcat1CATALINA_HOME C:\tomcat1TOMCAT_HOME C:\tomcat1CATALINA_2_BASE C:\tomcat2CATALINA_2_HOME C:\tomcat2TOMCAT_2_HOME C:\tomcat22、第一个tomcat不变3、打开第二个tomcat目录bin…

java long类型转string_JavaSE的学习——数据类型

数据类型分为基本数据类型和引用数据类型两大类在下面数据类型的介绍中只会介绍8种基本数据类型和引用数据类型中的类类型中的一个类String基本数据类型1. 计算机中的存储单位8bit 1byte 1024byte 1KB 1024KB 1M1024M 1GB1024GB 1T2. 整数型数据byte short int long1.long…

DWTagList

2019独角兽企业重金招聘Python工程师标准>>> DWTagList 根据给定的 NSArray 数组来创建标签列表,可自定义字体、颜色和其他属性。 转载:http://www.adobex.com/ios/source/details/00000820.htm 转载于:https://my.oschina.net/u/868244/blog/106245

爬虫(爬虫原理与数据抓取)

通用爬虫和聚焦爬虫 根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种. 通用爬虫 通用网络爬虫 是 捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的…

SQL Server Insert 操作效率(堆表 VS 聚集索引表)

“SQL Server的Insert操作在堆表或者聚集索引表的时候,哪个效率更高?为什么高?” 之前有同事问过我这个问题,为了确保日志库的记录效率,于是我做了简单测试了,首先要先强调几点概念: 堆表&#…

electron 打包_Vue3+Electron整合方式

教程源码:nofacer/vue3-electron​github.com之前写过一篇文章Vue结合Electron构建跨平台应用(TDD)。当时的方法后来发现了一个问题,就是打包后的应用拿到其他机子上没法用,原因在于index.html的地址是个绝对路径&…

Linux按照时间顺序列出文件

按照递增时间顺序列出所有文件 ls -ltr -l表示列出长串数据,-t表示按照时间顺序,-r表示将排序的结果反向输出 按照时间递减的顺序列出所有文件 ls -lt 转载于:https://www.cnblogs.com/yongjieShi/p/9395932.html

RestKit

2019独角兽企业重金招聘Python工程师标准>>> Restkit 是一个开源的 objective-c 框架,允许在 iOS 和 Mac OS X 的 Objective-C 中与 RESTful Web 服务进行交互,包含简单的 HTTP request/response API ,带有强大的对象映射系统用于…

全国计算机等级考试题库二级C操作题100套(第41套)

更多干货推荐可以去牛客网看看,他们现在的IT题库内容很丰富,属于国内做的很好的了,而且是课程刷题面经求职讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费!!!点击进…

2012年终总结 二

2019独角兽企业重金招聘Python工程师标准>>> 接上文。。。 经过一些搜索和了解之后,最后选定了我现在这个公司。现在,至少我没有感觉到我选错。 刚近公司,进行了新人的入职培训1天,这个主要是了解公司状况。而后&…