企业开发项目【1】— — 流程、开发环境搭建模板

news2024/11/24 22:52:28

企业开发项目【1】— — 流程、开发环境搭建模板

以黑马的学成在线为例

1 项目背景

2 项目介绍

3 开发环境搭建

3.1 开发工具配置(后端)

3.1.1 Idea配置

  1. 环境编码
    在这里插入图片描述
  2. 编译级别配置
project structure - 设置JDK版本和编译级别

在这里插入图片描述
3. 自动导包设置

IDEA可以自动优化导入包,但是有多个同名的类调用不同的包,必须自己手动Alt+Enter设置,
下面可以通过设置来进行导包优化。

在这里插入图片描述
4. 设置代码注释模板

不同公司对于注释有不同的要求

在这里插入图片描述

/**
* @description TODO
* @author ${USER}
* @date ${DATE} ${TIME}
* @version 1.0
*/
  1. 配置方法模板
  • 打开模板:
    在这里插入图片描述
  • 新增模板组:
    在这里插入图片描述
  • 在分组下添加代码模板:
    在这里插入图片描述
  • 点击“Change”,选择Java下的所有项目
    在这里插入图片描述
  • 填写模板内容
**
* @description TODO
* $params$
* @return $return$
* @author $user$
* @date $data$ $time$
*/
  • 点击Edit Variables编辑模板中用的变量
    在这里插入图片描述
    对于params方法的参数需要填写脚本,如下
groovyScript("if(\"${_1}\".length() == 2) {return '';}
else {
def result='';
def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();
for(i = 0; i < params.size(); i++) {
if(i==0){result+='@param ' + params[i] + ' '}
else{result+='\\n' + ' * @param ' + params[i] + ' '}};
return result;}", methodParameters()
);

3.1.2 Maven配置

下载好maven并配置好环境变量

  • 配置仓库环境

maven安装路径的conf目录中的setting文件中

本地仓库:
在这里插入图片描述
中央仓库:
在这里插入图片描述

  • idea中配置maven

配置maven安装目录及本地仓库的位置
File --> Settings --> Build --> Build Tools --> Maven

在这里插入图片描述

上图解释:
注释①:设置自己的maven路径(maven的根目录)
注释②:配置maven的settings文件的位置
注释③:配置maven的仓库位置

3.1.3 gogs(gitlab)配置【一般由PM来做】

Gogs和GitHub、GitLab一样都是Git托管平台,Gogs相比它
们两者更轻量。Gogs的官网地址:https://gogs.io/
【企业中多用GitLab】

访问自己搭建好的gogs地址(http://192.168.101.65:10880
使用gogs/gogs账号登录gogs平台

  1. 创建组织
    在这里插入图片描述

该组织通常以项目名命名,填写组织名称。

  1. 创建成功,进入管理面板修改组织信息
    在这里插入图片描述
  2. 修改成功,进入首页点击组织名称
    在这里插入图片描述
  3. 进入组织首页,选择创建团队
    在这里插入图片描述

假如创建研发团队,填写团队名称

在这里插入图片描述

选择权限等级,注意:这里即使选择了权限等级也需要在仓库管理中去管理协作者的权限。

团队创建成功
在这里插入图片描述
5. 创建成员账号

首先在用户管理中添加账号分配给成员

在这里插入图片描述
添加成员
在这里插入图片描述
6. 团队和组织创建完成,下边创建仓库,进入组织,创建仓库
在这里插入图片描述
项目创建成功:
在这里插入图片描述
7. 配置使用仓库的人员
在这里插入图片描述

添加协作者,将团队成员的账号添加为协作者。
添加完成注意分配权限,如下图,通常测试人员为读取权限,开发人员为读写权限。

团队Leader需要将初始代码上传至Git仓库,团队成员通过Idea克隆一份项目代码,通过此仓库进行协 作开发。

3.1.4 个人git配置

  1. idea配置git
  2. 直接从远程拉取并创建项目
  • 远程项目地址:
    在这里插入图片描述
  • idea直接通过地址创建项目:
    在这里插入图片描述
    项目创建成功:在这里插入图片描述

3.2 前端环境配置

3.2.1 node.js下载

安装完成,查看版本号
在这里插入图片描述

3.2.2VSCode开发工具下载

  1. 安装完成后下载插件
    在这里插入图片描述
    来到商店搜索插件名称,找到对应插件,进行install

常用插件:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2. 打开从远程仓库下载下来的项目
在这里插入图片描述
3. 打开终端

运行 npm install -g yarn 安装前端包管理工具yarn

# 完成安装后,查看版本
yarn -v 

如果出现如下问题:
在这里插入图片描述
解决办法:

  1. 在win10桌面左下角的搜索栏中输入powershell,以管理员身份运行,弹出命令窗口
  2. 输入set-ExecutionPolicy RemoteSigned
  3. 输入y
  4. 此时,输入 get-ExecutionPolicy

在这里插入图片描述
重启VScode,在VS Code的左下角右键,打开npm脚本
在这里插入图片描述
运行脚本,启动前端项目
在这里插入图片描述

3.2 项目工程搭建

3.2.1 项目结构介绍

如果是微服务项目的话,一般构成如下:

  • 整个项目分为三大类工程:父工程、基础工程 和微服务工程
    在这里插入图片描述

每一种类的工程都有不同的作用,下面是对其功能进行说明:

  • 父工程
    • 对依赖包的版本进行管理
    • 本身为Pom工程,对子工程进行聚合管理
  • 基础工程
    • 继承父类工程
    • 提供基础类库
    • 提供工具类库
  • 微服务工程
    • 分别从业务、技术方面划分模块,每个模块构建为一个微服务。
    • 每个微服务工程依赖基础工程,间接继承父工程。
    • 包括:内容管理服务、媒资管理服务、搜索服务、缓存服务、消息服务等。

3.2.2 父工程搭建(pom.xml)

  1. 创建父工程

从远程拉取代码下来之后,准备创建父工程

  • 检查jdk配置:
    在这里插入图片描述

别忘记修改maven配置

在这里插入图片描述

  • 进入Modules界面,新建模块:

注意:这里Server URL默认是start.spring.io,如果连接不上可换为start.aliyun.com

在这里插入图片描述

  • 点击next,点击finish,创建成功
    在这里插入图片描述

因为父工程主要是提供包管理、版本管理,因此很多文件可以删除,如上图

  1. 配置pom.xml(依赖管理定义)

父工程中没有代码,不用去依赖其它的包,它的作用是限定其它子工程依赖包的版本号,即在dependencyManagement 中去编辑即可

  1. 确定项目所依赖版本及版本号

properties与dependencyManagement和modelVersion同级

<properties>
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
    <spring-cloud.version>Hoxton.SR9</spring-cloud.version>
    <org.mapstruct.version>1.3.1.Final</org.mapstruct.version>
</properties>
  1. 删除所有原有的depencies依赖,设置dependencyManagement依赖管理
<dependencyManagement>
     <dependencies>
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-dependencies</artifactId>
             <version>${spring-cloud.version}</version>
             <type>pom</type>
             <scope>import</scope>
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-dependencies</artifactId>
             <version>${spring-boot.version}</version>
             <type>pom</type>
             <scope>import</scope>
         </dependency>
         <dependency>
             <groupId>com.alibaba.cloud</groupId>
             <artifactId>spring-cloud-alibaba-dependencies</artifactId>
             <version>${spring-cloud-alibaba.version}</version>
             <type>pom</type>
             <scope>import</scope>
         </dependency>
         <!-- lombok,简化类的构建-->
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
             <version>${org.projectlombok.version}</version>
         </dependency>
         <!-- mapstruct 代码生成器,简化java bean之间的映射 -->
         <dependency>
             <groupId>org.mapstruct</groupId>
             <artifactId>mapstruct-jdk8</artifactId>
             <version>${org.mapstruct.version}</version>
         </dependency>
   </dependencies>
</dependencyManagement>
  1. 创建完成后提交到git

3.2.3 基础工程创建

基础工程与父工程目录同级

在这里插入图片描述

这里需要注意的是xuecheng-plus-base的父工程为xuecheng-plus-parent,xuecheng-plus-base的pom.xml的如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!--
    base项目的父工程为xuecheng-plus-parent
    因为文件路径是在同级目录,因此此处pom指向需要将relativePath先跳到上级目录
    -->
    <parent>
        <artifactId>xuecheng-plus-parent</artifactId>
        <groupId>com.xuecheng</groupId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../xuecheng-plus-parent/pom.xml</relativePath>
    </parent>

    <groupId>com.xuecheng</groupId>
    <artifactId>xuecheng-plus-base</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>xuecheng-plus-base</name>
    <description>xuecheng-plus-base</description>

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <!-- fast Json -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <!-- servlet Api 依赖 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <!-- 通用组件 -->
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.11</version>
        </dependency>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        <!--根据扩展名取mimetype-->
        <dependency>
            <groupId>com.j256.simplemagic</groupId>
            <artifactId>simplemagic</artifactId>
            <version>1.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-parameter-names</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jdk8</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
        </dependency>
    </dependencies>

</project>

基础工程中的内容待需要时再行开发。
至此父工程和基础工程创建完成,最后提交至git。

注意项目依赖并不完整,主要是为了演示过程

3.2.4 提交git

在项目工程的根目录添加.gitignore文件,编辑内容如下:

HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
logs/
### VS Code ###
.vscode/

最终项目结构:
在这里插入图片描述

如果是初次push到远程,要求输入gogs的账号和密码

在这里插入图片描述
输入项目经理(PM)开始添加的成员账号即可,如:

jack
jack@qq.com

3.3 项目数据库环境

参考:黑马的学成在线项目

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

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

相关文章

远距离车载高速网络通讯方案

一 车载网络的发展 随着电子、半导体和通讯等行业的快速发展&#xff0c;汽车智能化的诉求也愈发强烈。越来越多的传感器和处理器的应用推动了汽车的智能化和电气化&#xff0c;与此同时&#xff0c;也使得ECU&#xff08;电子控制单元&#xff09;的数量快速增加。随着自动驾…

基于“python+”潮汐、风驱动循环、风暴潮等海洋水动力模拟

ADCIRC是新一代海洋水动力计算模型&#xff0c;它采用了非结构三角形网格广义波动连续方程的设计&#xff0c;在提高计算精确度的同时还减小了计算时间。被广泛应用于&#xff1a;模拟潮汐和风驱动的循环、预测风暴潮和洪水和近岸海上作业等。 除此之外&#xff0c;ADCIRC也是我…

目前市场上比较好的oa办公系统企业管理软件有哪些?

行政小李拿着《疫情期间春节返乡填报单》在工位之间来回穿梭…… 财务小王把年终奖金和福利方法拿给老板签字…… 行政小李的和人事小赵回回都因为入职新人培训的事情扯皮…… 后勤小郑每次办公物资的整理都要做半天…… OA系统本就是为企业内部的员工沟通、工作效率提高、协作…

WebDAV之葫芦儿·派盘+BookxNote

BookxNote 支持WebDAV方式连接葫芦儿派盘。 BookxNote是全新设计的电子书阅读学习笔记软件,以不同的思维方式重塑我们的学习过程。一边阅读一边划重点,提供多种划重点笔记工具,包括直线、矩形、圆形、高亮文本,图片摘录。高亮的文本自动编辑为重点的批注内容,还可以对重点…

查看网站历史记录的2种办法,怎样查看网站历史记录?

有个想购买二手域名的朋友问小黑&#xff1a;如何查看网站历史记录&#xff1f;于是今天就分享查看网站历史记录的 2种办法&#xff1a;网站历史记录和快照。 如果你在下单之前想查一查域名以前做过些什么&#xff0c;有没有违禁记录&#xff0c;被惩罚过&#xff0c;被K过等等…

LeetCode082_82. 删除排序链表中的重复元素 II

LeetCode082_82. 删除排序链表中的重复元素 II 一、描述 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,3,4,4,5] 输出&#xff1a;…

CODESYS开发教程8-定时、触发和计数

今天继续我们的小白教程&#xff0c;老鸟就不要在这浪费时间了&#x1f60a;。 前面一期我们介绍了CODESYS的字符串及其操作。这一期主要介绍CODESYS的定时器及触发的相关功能块特性及用法&#xff0c;注意本文介绍的定时器、触发器和计数器均包含在CODESYS的Standard库中。 一…

c-note:字符串常量初始化存放位置

两行代码&#xff0c;分别以数组形式和指针形式&#xff0c;先说结论。 对于字面量"he"的存放位置&#xff1a; 1、数组形式&#xff0c;字面量直接存放进栈给temp处开辟的空间 2、指针形式&#xff0c;字面量"he"是一个常量&#xff0c;在编译之初便存在于…

如何在mac上使用idea做大数据开发

1 软件包下载jdk1.8 (jdk1.8.0_231)idea(包括2018,2019) (ideaIC-2019.3.3/ideaIC-2018.3.5)汉化包:汉化包.rarmaven3.6.3 (apache-maven-3.6)2 jdk的安装第一:把包直接放到自定义目录下第二:配置环境变量a) 打开终端 输入 sudo vi /etc/profile 或者 sudo vi .bash_profile解释…

联合证券|滴滴出行即日起恢复!A股嗨了!券商扛起领涨大旗

A股今天全线走高&#xff0c;沪指涨超1%克复3200点&#xff0c;深成指、创业板指盘中涨超2%&#xff1b;港股午后回落走低&#xff0c;恒生科技指数一度跌超2%。 详细来看&#xff0c;A股方面&#xff0c;两市股指盘中强势拉升&#xff0c;沪指涨超1%站稳3200点&#xff0c;深成…

『速查手册』MIME 多用途互联网邮件扩展

『速查手册』MIME 多用途互联网邮件扩展 文章目录『速查手册』MIME 多用途互联网邮件扩展一、多用途互联网邮件扩展 / 互联网媒体类型二、MIME 命名规则&#x1f60e;三、MIME 类型列表&#x1f349;1)、Type 类型形式2)、Application 应用文件3)、Text 文本4)、Video 视频文件…

elasticsearch(三)-- 理解ES的索引操作

一、前言 上一章我们主要学习了es的几个客户端&#xff0c;那么我们后面也主要通过kibana客户端、HighLevelClient高级客户端这两个来学习es. 这一章的学习我们主要是学习一些Elasticsearch的基础操作&#xff0c;主要是深入一些概念&#xff0c;比如索引的具体操作&#xff0…

三、WEB框架介绍以及设计模式

web框架介绍 什么是web框架 应该叫web应用框架(web application framework)&#xff0c;它是一种开发框架。 通俗点来讲&#xff0c;就是用来开发web应用的程序。 为什么要使用框架来开发 互联网行业流行一句话叫“不要重复造轮子”&#xff0c;特别是对于新手和应用层开发…

day22-JDK新特性

接口中的新特性 接口我们之前已经学过了&#xff0c;那么接口中内部主要就是封装了方法&#xff0c;包含抽象方法&#xff08;JDK 7及以前&#xff09;&#xff0c;默认方法和静态方法&#xff08;JDK 8&#xff09;&#xff0c;私有方法 &#xff08;JDK 9&#xff09;。 接口…

使用Navicat导入和导出sql语句

创建mysql数据库 创建数据库之前&#xff0c;肯定要先连接上数据库&#xff0c;如果不知道怎么使用navicat连接mysql数据库&#xff0c;可以参考之前的文章哦 https://blog.csdn.net/weixin_43860634/article/details/128716733 接下来进入正题 1、首先要双击test &#xff0…

命令注入与dvwa中的Command Injection

一、什么是命令注入&#xff1f;即 Command Injection&#xff0c;是指通过提交恶意构造的参数破坏命令语句结构&#xff0c;从而达到执行恶意命令的目的。此攻击与代码注入不同&#xff0c;因为代码注入允许攻击者添加自己的代码&#xff0c;然后由应用程序执行。 在命令注入中…

用队列实现栈

题目&#xff1a;225. 用队列实现栈 - 力扣&#xff08;LeetCode&#xff09;准备工作这题明确说明了需要用队列来实现栈&#xff0c;介于C语言没有队列的库&#xff0c;所以在此之前我们需要用调用之前学的队列&#xff0c;详见队列typedef int QDataType;typedef struct Queu…

Ubuntu上安装 Hadoop 3详细过程(验证+填坑总结)

Ubuntu上安装 Hadoop 3 前提条件&#xff1a; Python 推荐3.8JDK 推荐1.8 解压安装 sudo tar -zxvf hadoop-3.3.0.tar.gz -C /usr/local cd /usr/local sudo mv hadoop-3.3.0 hadoop sudo chown -R hadoop ./hadoop 配置环境变量 vim ~/.bashrc # hadoop export H…

云原生安全系列 5:ETCD 安全加固

引言 etcd是一个强一致性的分布式键值存储&#xff0c;它提供了一种可靠的方式来存储需要被分布式系统或机器集群访问的数据。通过 raft 算法它能在网络分区期间优雅地处理领导者的选举&#xff0c;并能容忍机器故障&#xff0c;甚至在领导者节点上。除此之外&#xff0c; etc…

存储过程的基础知识

本文来简单说下存储过程的基础知识 文章目录概述什么是存储过程存储过程的优缺点概述 mysql官网提供的储存过程&#xff1a;https://www.mysqlzh.com/doc/225/499.html 什么是存储过程 简单的说&#xff0c;存储过程是一条或者多条SQL语句的集合&#xff0c;可视为批文件&…