如何在华为云软件开发云上搭建JavaWeb,Maven项目
本文将使用华为云软件开发云向大家演示如何搭建JavaWeb,Maven项目。
一.相关信息
1.华为云软件开发云简介

华为云软件开发云(DevCloud)是集华为近30年研发实践,前沿研发理念,先进研发工具为一体的一站式云端DevOps平台,面向开发者提供包括项目管理,代码托管,流水线,代码检查,编译构建,测试管理,移动应用测试,部署,发布,CloudIDE,研发协同等基础功能的研发工具服务。覆盖软件开发全生命周期,支持多种主流研发场景,让软件开发更高效。
官网入口:https://www.huaweicloud.com/devcloud/
2.JavaWeb简介

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java Web是用Java技术来解决相关web互联网领域的技术总和。
二.搭建步骤示例
1.代码仓库
华为云软件开发云的代码仓库功能是基于Git的代码托管仓库,可提供文件在线编辑,仓库提交记录,代码贡献度统计等多种功能,满足各类开发者的需求。
本文中的demo是在软件开发云中,新建一个空代码仓库,通过git命令与本地代码仓库进行关联,完成代码同步。

2.编译构建
编译构建俗称打包,是指将软件源码编译成目标文件,并将目标文件和必要的文档制作成软件包的过程。
针对JavaWeb项目,软件开发云提供了Maven构建和Ant构建两种构建方式。本文将选择Maven对项目进行构建。
具体操作:选择java语言,构建类型选择maven。归档位置填写IDE中生成的war包路径及名称。

War包命名方式:在pom文件中,finalName标签,标签内容即是构建包名称。

War包的路径:生成的war包在项目中的路径,通常是web/target/war包名称.war。

在编译构建时,我们还可以将构建包上传到发布仓库(接下来会讲到),便于项目部署。

3.发布
软件开发云提供三种仓库,发布仓用于接受构建包,Maven私仓用于Maven类型构建过程中第三方依赖包的的管理。第三个仓库是mirror镜像仓,镜像了一些构建过程中经常以来的中央仓到后台,提升构建速度,体现云端构建的优势。 上文提到,我们的xiaoyaoji-2.1.15.war已经以xiaoyaoji的包名上传到发布仓库中。

4.部署
部署任务分为五部分:添加主机,选择部署脚本,选择发布软件包,填写验证路径,执行部署。
添加主机 填写主机相关信息,包括公网ip,用户名,密码。本文中使用的是linux主机,window系统请更改主机类型,填写相关信息。

添加完主机之后,我们可以开始编写部署脚本。软件开发云提供了三种部署方法:shell部署,docker部署,Ansible部署。本文使用Ansible部署,演示如何部署Javaweb应用。
Ansible部署可以自己填写部署脚本,也可以使用系统提供的部署脚本,本文直接选择系统默认的tomcat部署。
部署playbook选择完毕,选择软件构建包,上文我们在发布仓库中已经保存了构建包,我们在部署时可以直接使用。如果未在软件开发云中使用编译构建功能,也可以从本地将构建包上传至发布仓库,选择,部署。
验证路径,就是主机的ip,端口,再加上选择的软件包名称。

完成任务配置之后,点击开始部署,就可以开始执行部署任务了。

提示部署成功后,点击验证路径,可以看到以下页面:

至此,我们的项目,从代码托管到编译构建,最后部署就通过华为云软件开发云全部完成了,达到了我们预期的效果。
如何在华为云软件开发云上搭建JavaWeb,Maven项目的更多相关文章
- 如何在华为云软件开发云上运行Python
一. 华为云软件开发云与Python 1. 华为云软件开发云简介 华为云软件开发云(DevCloud)是集华为近30年研发实践,前沿研发理念,先进研发工具为一体的一站式云端DevOps平台,面向开发者 ...
- 华为云软件开发云VS开发痛点=?
在软件开发的过程中,是不是总会遇到这些问题: 搭建一个开发环境,用了九牛二虎之力,悲催的是竟然用不了…… 团队同事突然出差,他写的代码出现问题,我却不会改…… 提升软件件质量靠代码,交叉看.找大拿,简 ...
- 华为云软件开发云:容器DevOps,原来如此简单!
当开发团队把代码提交到 Git 应用仓库的那一刻,他们心里在想什么? 祈祷没有bug?渴望回家补觉?产品经理Go Die? 对,也不对.因为这只是最终发布万里长征的一小步,接下来要面对测试环境.生产环 ...
- 华为软件开发云(DevCloud):免费可商用的项目管理工具
在软件开发技术和理念层出不穷的今天,如何更快的适应变化的环境,更好的满足客户的需求,已经成为决定从小到大各种规模企业能否活下去的关键. 天下武功唯快不破,在当今大环境中更是如此,微服务,敏捷开发,新的 ...
- 如何使用华为软件开发云快速部署PHP网站
华为软件开发云这个工具,从去年推出我就一直在关注,毕竟是华为最新的一款软件开发工具,最近我一直在使用华为软件开发云进行开发项目管理,它有在线编译和构建.云端在线代码检查等功能,编译省去了很多物理机器的 ...
- Eclipse安装Git插件以及通过Git导入华为软件开发云项目
--内容提交-- 1. Eclipse安装Git插件 2. 在Eclipse中导入华为软件开发云项目, 以及常用Git操作 一. Eclipse安装Git插件 现在从eclipse官网下载 ...
- GitHub转华为软件开发云详细教程
一.复制GitHub的代码库地址 首先,打开Github网页,找到要迁移的代码仓库地址,如下: 点击Clone or Download,出现以下界面 点击Copy toclipboard(复制到粘贴板 ...
- 如何将Android Studio与华为软件开发云代码仓库无缝对接(二)
上篇文章:如何将Android Studio与华为软件开发云代码仓库无缝对接(一) 上一章讲了,如何用Android Studio以软件开发云代码仓库为基础,新建一个项目.接下来,这一章继续讲建好项目 ...
- 华为软件开发云对比Jenkins-JavaWeb项目持续部署方式
一.前言:Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成和持续部署变成可能. 本文 ...
随机推荐
- AutoMapper IIS回收引发的 未将对象引用设置到对象实例
一.前言 最近使用AutoMapper的时候,一段时间久会产生System.NullReferenceException:未将对象引用设置到对象的实例.这个问题.后来通过测试,发现部署在IIS上的站点 ...
- 几种文件查找命令,whereis ,find ,locate.
whereis对于文件的查找,是将系统内的所有文件放在一个数据库文件里.whereis 和 locate 都是以该数据库为准的(由于每个数据库会有一个更新时间,一般在更新时间之后才可以找到).而fin ...
- Kotlin编码----var和val的区别
var是一个可变变量,这是一个可以通过重新分配来更改为另一个值的变量.这种声明变量的方式和Java中常规的变量的声明方式一样. val是一个只读变量,这种声明变量的方式相当于java中的final变量 ...
- [转载] 2 分钟读懂大数据框架 Hadoop 和 Spark 的异同
转载自https://www.oschina.net/news/73939/hadoop-spark-%20difference 谈到大数据,相信大家对Hadoop和Apache Spark这两个名字 ...
- java历史概述
java简介Java是由Sun Microsystems公司于 1995年5月推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称.由James Gosling和同事们共同研 ...
- win10环境下tensorflow-gpu安装
踩了很多坑,浪费了一下午时间,在此记录一下. pip install tensorflow-gpu 然后下载安装cuda8.0 https://developer.nvidia.com/cuda-do ...
- 分布式缓存之Ehcache与terracotta - Terracotta服务器概念篇
1.介绍 Terracotta服务器为Terracotta产品提供分布式数据平台.Terracotta服务器集群被称为Terracotta服务器阵列(TSA).Terracotta服务器阵列可以从单个 ...
- LINQ学习系列-----2.3 迭代器带来的延迟查询
此篇博文承接上一篇博文: LINQ学习系列-----2.2 迭代器 一.第一次执行 废话不多说,上源码: 执行结果下图: 为什么会这样?其实原因很简单 fro ...
- 3255:十进制到六进制-poj
3255:十进制到六进制 总时间限制: 1000ms 内存限制: 65536kB 描述 进制转换: 将十进制(不超过int类型表示的范围)的数转换为六进制的数. 输入 输入为第一行是组数n,后面n ...
- C语言之循环次数
#include<stdio.h>int main(){int num,count=0,i=0,ret=0;scanf("%d",&num);while(num ...