idea项目打包和部署
@TOC
1、关于端口
在实际项目中,部署在不同IP地址的服务器上,所以可以删掉配置文件的关于不同端口的配置
项目应该部署到同一个局域网的网段,且建议使用网络别名,否则一旦改变IP地址则容易出现问题
2配置文件
先将配置文件恢复到正常状态
示例
server:port: 7776
eureka:client:service-url:defaultZone: http://root:123456@server1:7776/eureka/,http://root:123456@server2:7776/eureka/register-with-eureka: truefetch-registry: true
spring:application:name: eureka-serversecurity:basic:enabled: trueuser:name: rootpassword: 123456
3/依赖
之前
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
改后
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.2.RELEASE</version><!--这里写上main方法所在类的路径,启动类,可以点出来--><configuration><mainClass>com.EurekaServerApplication</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins><resources><resource><directory>src/main/resources</directory></resource></resources></build>
如果有前端可以加上这一段
clean,出现build success
双击
如果正常打包,出现如下两种文件
在host文件添加主机
将jar包放到一个临时文件夹,打开cmd
访问注册中心
能够启动表示正常
4/Dockerfile
修改相关jar包名称
最下面两行取其一,意思相近,启动jar包
#
# 注册中心
#
FROM centos7:jdk8ADD eureka-server-1.0.jar /usr/local/eureka-server-1.0.jar
WORKDIR /usr/localRUN bash -c 'touch eureka-server-1.0.jar'#ENTRYPOINT ["java","-server","-Xms64m","-Xmx128m","-jar","eureka-server-1.0.jar"]
CMD java -jar /usr/local/eureka-server-1.0.jar
启动虚拟机,将jar包上传到虚拟机中
打开portainer,创建网络
创建镜像
创建容器,只要在当前网络里,都可以用别名访问容器
普通项目
父项目
依赖
子项目
build依赖
不涉及到xml则不用加
公共组件,加一个启动类(本质不需要,但是打包要加上),依赖configuration必须加,不加即使打包成功,也无法引用,只要是被被人作为依赖引用,就必须加
注册中心需要别名,其他项目可以不设,因为其他项目是通过注册中心调用的
注册中心的打包和部署
打包
在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><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com</groupId><artifactId>eureka-server</artifactId><version>1.0</version><name>eureka-server</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version><spring-cloud.version>Greenwich.SR1</spring-cloud.version></properties><dependencies><略></dependencies><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></dependencies></dependencyManagement><!--重点--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.2.RELEASE</version><!--这里写上main方法所在类的路径:启动类--><configuration><mainClass>com.EurekaServerApplication</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins><!--如果有资源文件夹--><resources><resource><directory>src/main/resources</directory></resource></resources></build>
</project>
application.yml配置
server:port: 7776
eureka:client:service-url:defaultZone: http://root:123456@server1:7776/eureka/,http://root:123456@server2:7776/eureka/register-with-eureka: truefetch-registry: true
spring:application:name: eureka-serversecurity:basic:enabled: trueuser:name: rootpassword: 123456
打包
表示成功
双击package
打包成功
测试
java -jar eureka-server-1.0.jar
有两个server,打包成功
部署
打开虚拟机上传jar包和Dockerfile文件
Dockerfile,以下文件需要修改jar包名称,最下两行选其一(作用差不多)
#
# 注册中心
#
FROM centos7:jdk8ADD eureka-server-1.0.jar /usr/local/eureka-server-1.0.jar
WORKDIR /usr/localRUN bash -c 'touch eureka-server-1.0.jar'#ENTRYPOINT ["java","-server","-Xms64m","-Xmx128m","-jar","eureka-server-1.0.jar"]
CMD java -jar /usr/local/eureka-server-1.0.jar
# 创建镜像
docker build -t eureka-server ./eureka-server
#创建2个注册中容器. 注:设置容器别名
#内部:外部端口 网络 应用 应用别名
docker run -d -p 7776:7776 --network demo --network-alias server1 --name eureka-server1 eureka-server
docker run -d -p 7777:7776 --network demo --network-alias server2 --name eureka-server2 eureka-server
普通项目的打包和部署
父项目
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.2.RELEASE</version><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>
公共组件
即使没有用,也需要添加一个启动类
依赖
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.2.RELEASE</version><configuration><!--启动类--><mainClass>com.CommonApplication</mainClass><!--公共组件被引用--><classifier>exec</classifier></configuration></plugin></plugins></build>
如果不添加,公共组件打包之后将无法被引用
无论哪个包,只要被别人引用,就要添加以下代码
<configuration><classifier>exec</classifier>
</configuration>
provider
pom文件
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.2.RELEASE</version><!--这里写上main方法所在类的路径--><configuration><mainClass>com.ProviderUserApplication</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins><resources><resource><directory>src/main/webapp</directory><targetPath>META-INF/resources</targetPath></resource><resource><directory>src/main/resources</directory></resource><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources></build>
yml文件
注意:此处的数据库是创建的容器的别名
server:port: 8081
spring:application:name: p-userdatasource:type: com.alibaba.druid.pool.DruidDataSourceurl: jdbc:mysql://mysql:3306/market?characterEncoding=utf-8&serverTimezone=Asia/Shanghaiusername: rootpassword: 123456druid:driver-class-name: com.mysql.jdbc.Driver
eureka:client:service-url:defaultZone: http://root:123456@server1:7776/eureka/,http://root:123456@server2:7776/eureka/
consumer
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.2.RELEASE</version><!--这里写上main方法所在类的路径--><configuration><mainClass>com.ConsumerUserApplication</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins><resources><!--页面--><resource><directory>src/main/webapp</directory><targetPath>META-INF/resources</targetPath></resource><!--资源文件夹--><resource><directory>src/main/resources</directory></resource><!--mapper映射文件--><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources></build>
yml文件
server:port: 8180
spring:application:name: c-user
eureka:client:service-url:defaultZone: http://root:123456@server1:7776/eureka/,http://root:123456@server2:7776/eureka/
feign:hystrix:enabled: true
MySQL设置远程连接
创建数据库容器docker run -d -p 3306:3306 --network demo --network-alias mysql --name mysql mysql
然后创建远程连接的许可
1. 使用root账号登录mysqlmysql -uroot
2. 授权GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
3. 重启容器
在sqlyog连接创建的数据库,并运行项目的SQL文件
打包
总项目:clean-compile编译-install-package
测试
Docker文件
#
# user消费者
#
FROM centos7:jdk8ADD consumer-user-0.0.1-SNAPSHOT.jar /usr/local/consumer-user-0.0.1-SNAPSHOT.jar
WORKDIR /usr/localRUN bash -c 'touch consumer-user-0.0.1-SNAPSHOT.jar'#ENTRYPOINT ["java","-server","-Xms64m","-Xmx128m","-jar","consumer-user-0.0.1-SNAPSHOT.jar"]
CMD java -jar /usr/local/consumer-user-0.0.1-SNAPSHOT.jar
上次jar包和docker文件到虚拟机
/* 消费者 */
#创建镜像
docker build -t user-consumer ./user-consumer
#创建容器
docker run -d -p 8180:8180 --network demo --name user-consumer1 user-consumer
docker run -d -p 8181:8180 --network demo --name user-consumer2 user-consumer
将provider和consumer都部署好之后,访问测试一遍
idea项目打包和部署相关推荐
- spring项目搭建云服务器,Spring Boot项目打包并部署到云服务器
Spring Boot项目打包并部署到云服务器 一.云服务器的环境 OS: CentOS 7 Jdk 1.8 Spring Boot自动集成Tomcat,不需要单独配置 二.本地Spring Boot ...
- SpringBoot 部署: 项目打包 手动部署到阿里云服务器上
SpringBoot 部署: 项目打包 & 手动部署到阿里云服务器上 文章目录 SpringBoot 部署: 项目打包 & 手动部署到阿里云服务器上 前言 正文 1. 环境准备 &am ...
- Vue 学习笔记(4)Vue-cli4 项目搭建 + 目录结构 + 项目打包、部署
VueCLI 脚手架 Vue CLI 介绍 Vue CLI 安装 Node.js 环境准备 安装 Vue 脚手架 第一个 Vue 脚手架项目 命令创建项目 图形化界面创建项目 vue-cli4 目录结 ...
- JAVA 项目打包和部署一站式解决方案
文章目录 一.场景描述 二.打包方式 场景方式一:常规 MAVEN 零散项目打包部署方式 场景方式二:常规 MAVEN 集中项目打包部署方式 场景方式三:借助 spring-boot 插件进行打包部署 ...
- 来自一枚rookie的项目开发——vite下的vue3+ts的项目打包及部署
Vite下Vue3.0+Typescript项目打包 正常的打包操作 npm run build // package.json ..."scripts": {"dev& ...
- vue项目打包后部署到服务器(超详细步骤)
耽误了几天, 终于开始写第二篇博客了, 这篇会讲怎么将vue项目打包部署到服务器, 其实和上一篇的uni-app步骤一样的, 就是最后多了一步修改nginx配置, 好 , 上操作 一 ,打包项目 vs ...
- 记录第一次成功将vue项目打包并部署到centos云服务器上并访问(包含多个vue项目部署nginx配置说明)
文章目录 准备 vue项目打包 配置服务器 使用xshell 使用xftp 当项目更新时操作 小结 准备 vscode:用于打包vue项目(需要提前安装好node与npm,推荐使用mvn管理node, ...
- uniapp项目打包与部署云服务器
uniapp项目的打包 第一步,在manifest里面配置好基础路径和端口 然后进行发布,填好自己的云服务器域名 打包成功后,项目在如图h5路径下,拿着h5文件的压缩包就可以去部署了 第二步,你要有一 ...
- 【前端部署】vue项目打包并部署到Linux服务器
文章目录 一.打包vue前端项目 二.安装nginx 1.下载及安装 2.启动程序 3.其他命令 三.利用WinSCP传输文件 四.配置nginx 1.修改服务器端口 2.修改dist存放路径 3.完 ...
最新文章
- 配置 php-fpm 监听的socket
- Swift for循环:用于索引,数组中的元素?
- c# timer使用
- 分拣外观残缺的机器人_中国鞋业高峰论坛大咖云集,国辰机器人解读“鞋业智造”...
- 超实用!从0到1教你打造一个令人上瘾的聊天机器人
- CycleGAN:图片风格,想换就换 | ICCV 2017论文解读
- 【UVA1638】杆子的排列
- 图模型在信息流推荐系统中的原理和实践
- java filechannel 性能_FileChannel 和 MappedByteBuffer 实现上有什么不同?为什么性能差这么多?...
- Git1天打卡 day13-查看仓库文件改动状态
- 廖雪峰Java1-1Java入门-java简介
- 行间事件传this的问题:
- python查看类的属性和方法_python—类的属性和方法总结
- 易班显示服务器错误,易班常见问题汇总
- 推荐一款免费的SSH+sftp工具
- 江苏海洋大学c语言期末考试题库,海南热带海洋学院18级C语言期末考试PAT编程题...
- office 2007插入带圈字符
- C语言求:哥尼斯堡七桥问题
- 【FPGA】四、按键消抖
- 微信支付V3版商家转账到零钱