1、程序打包

在 pom.xml 中配置打包的相关插件。Solon 的项目必须开启编译参数:-parameters

<!-- 建议的配置:指定相关编码为 UTF-8 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties> <!-- 主菜是这里: -->
<build>
<finalName>${project.artifactId}</finalName>
<plugins> <!-- 配置编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<compilerArgument>-parameters</compilerArgument>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin> <!-- 配置打包插件(设置主类,并打包成胖包) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<finalName>${project.name}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>webapp.DemoApp</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

使用工具,或运行 maven 的 package 指令完成打包(IDEA的右侧边界面,也有这个菜单)

2、服务端口控制(此处再提一下)

在应用主配置文件里指定:

server.port: 8081

可以在运行时指定系统属性(优先级高):

java -Dserver.prot=9091 -jar DemoApp.jar

还可以,在运行时通过启动参数指定(优先级更高):

java -jar DemoApp.jar -server.prot=9091

3、运行

终端运行:java -jar DemoApp.jar 即可启动

或者

终端运行:java -jar DemoApp.jar -server.prot=9091 启动时控制端口

4、尝试用 systemctl service 模式管理服务(仅供参考,linux 可用)

添加 systemctl service 配置,waterapi为例:/etc/systemd/system/waterapi.service

[Unit]
Description=waterapi
After=syslog.target [Service]
ExecStart=/usr/bin/java -jar /data/sss/water/waterapi.jar
SuccessExitStatus=143
SuccessExitStatus=143
Restart=on-failure [Install]
WantedBy=multi-user.target

通过 systemctl 指令操控服务:

systemctl enable waterapi

systemctl restart waterapi

systemctl stop waterapi

配置好后之后,服务更新的简单操作:

  1. 更新 jar 文件
  2. 运行 systemctl restart waterapi 即可

5、尝试用 docker 模式管理服务(仅供参考)

本地需要安装 Docker Desktop。然后在 pom.xml 增加镜像打包的 maven 插件配置。

<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.2</version>
<configuration>
<imageName>${project.artifactId}</imageName>
<imageTags>
<imageTag>${project.version}</imageTag>
<imageTag>latest</imageTag>
</imageTags>
<baseImage>adoptopenjdk/openjdk11</baseImage>
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar", "--server.port=8080","--drift=1"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>

运行插件的:"docker:build" 命令之后,就会进入本地仓库了。如何发布到中央仓库或别的远程仓库,可以网上搜下。

#第一次运行
docker run -d -p 8080:8080 waterapi #之后
docker restart waterapi docker stop waterapi

Solon Web 开发,三、打包与运行的更多相关文章

  1. Solon Web 开发

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  2. Solon Web 开发,一、开始

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  3. Solon Web 开发,二、开发知识准备

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  4. Solon Web 开发,四、请求上下文

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  5. Solon Web 开发,五、数据访问、事务与缓存应用

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  6. Solon Web 开发,六、过滤器、处理、拦截器

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  7. Solon Web 开发,七、视图模板与Mvc注解

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  8. Solon Web 开发,八、校验、及定制与扩展

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  9. Solon Web 开发,九、跨域处理

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  10. Solon Web 开发,十一、国际化

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

随机推荐

  1. [C++]线段树 区间修改 单点查询

    线段树 区间修改 单点查询 请先阅读上一篇Bolg 算法思想 由于是区间修改 那就把下放的每一个线段给套上一层标记 来表达增加的值 单点查询就把那些标记穿起来就行了 当然 还要加上那原来的值 来举个例 ...

  2. Java Web程序在Tomcat上是如何运行的

    https://blog.csdn.net/fuzhongmin05/article/details/104379514 一个JVM是一个进程,JVM上跑Tomcat,Tomcat上可以部署多个应用. ...

  3. CSS3 rgb and rgba(透明色)的使用

    作者:WangMin 格言:努力做好自己喜欢的每一件事 对于颜色相信大家都很敏感,眼睛所见之处都存在颜色,那在css中我们用什么来表示颜色呢?CSS 中的颜色有三种定义方式:使用颜色方法(RGB.RG ...

  4. SNN_LIF模型

    LIF模型 Leaky integrity-Fire(LIF)模型 输入信号直接影响神经元的状态,即神经元膜电位,只有当膜电位上升到阈值的时候,才会产生输出信号. 膜电位:细胞膜两侧的电位差.只有当膜 ...

  5. 后台获取的map集合封装json

    let list = [] let arr = {'a':'1','b':'2','c':'3','d':'4'} for(var key in arr){ console.log("key ...

  6. 关于点赞业务对MySQL和Redis和MongoDB的思考

    点赞 ​ 在我个人理解中,点赞业务比较频繁,很多人业务可能都会有这个,比如:博客,视频,文章,动态,评论等,但是不应该是核心业务,不应该大量地请求MySQL数据库,给数据库造成大量的资源消耗,MySQ ...

  7. JAVAweek5

    学习内容 进制 1.(十进制):752=2*10(0)+5*10(1)0+7*10(2)=752 (二进制):1011(二进制的数)=1*2(0)+1*2(1)+0*2(2)+1*2(3)   = 1 ...

  8. Head First Java学习:第七章-继承和多态

    第七章:继承和多态 1. 覆盖(override) 覆盖的意思是由子类重新定义继承下来的方法,以改变或延伸此方法的行为. 2. 继承(extends) 类的成员:实例变量+方法 实例变量无法覆盖是因为 ...

  9. .NET微信网页开发之通过UnionID机制解决多应用用户帐号统一问题

    背景 随着公司微信相关业务场景的不断拓展,从最初的一个微信移动应用.然后发展成微信公众号应用.然后又有了微信小程序应用.但是随着应用的拓展,如何保证相同用户的微信用户在不同应用中登录的同一个账号呢?今 ...

  10. Mybatis-Flex核心功能之@Table

    1.能干啥? @Table 主要是用于给 Entity 实体类添加标识,用于描述 实体类 和 数据库表 的关系,以及对实体类进行的一些 功能辅助. 例如: 数据库有一张tb_member的会员表 这时 ...