Java中的Maven项目使依赖和自己写的代码的分开的部署的部署方式

news2024/11/29 0:30:49

文章目录

  • 优点
  • maven中配置
  • 执行maven 打包
  • 项目部署
  • 查看服务启动状态

优点

随着项目的功能越来越多,如果把所有代码都打包到一个jar里,这样不利于传输。把源码和依赖包分开。这样如果依赖包没有变化的话,再此部署时,就不需要往服务器的lib目录下上传依赖包,只需要把源码的变更过的源码包部署即可。

maven中配置

在 存在启动类的工程里的pom.xml 配置以下内容。之前的<build>标签内的东西注释掉。

<!-- 使用下面的build内容在打依赖包和源码内容时可以分开-->
    <build>
        <plugins>
            <!-- 自定义ClassPath路径 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <!-- 把构建根目录的lib文件夹配置成ClassPath路径 -->
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                        </manifest>
                        <manifestEntries>
                            <Class-Path>./</Class-Path>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
            <!--配置Jar包构建信息-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.1.1.RELEASE</version>
                <configuration>
                    <fork>true</fork>
                    <addResources>true</addResources>
                    <includeSystemScope>true</includeSystemScope>
                    <!--手动设置构建需要加入的依赖,只有配置的依赖才会加入。-->
                    <includes>
                        <!--配置一个不存在的groupId,这样就不会引入任何依赖,jar包就只包含代码文件-->
                        <include>
                            <groupId>not-exists</groupId>
                        </include>
                        <!--如果是多模块项目,其他模块需要手动添加下面-->
                    </includes>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!--把依赖拷贝到Lib路径-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <!--生成的jar包名称为项目的artifactId-->
        <finalName>${project.artifactId}</finalName>
    </build>

执行maven 打包

在这里插入图片描述
在这里插入图片描述

项目部署

启动(重启)服务的脚本( restart-customer.sh)

#!/bin/bash
# *******************************
# example
#     cd bin/
#     sh debug.sh
# ********************************

kill -9 $(netstat -lnp|grep 8083 | awk '{print $7}' | awk -F"/" '{print $1}')
cd /home/user/app
chmod +755 platform-customer.jar
source /etc/profile
#cd ..
#ulimit -n 524280
cd /home/user/app/logs
JAVA_OPTS=""
nohup java -jar -Djava.library.path=/home/user/app-Dloader.path=./lib /home/user/app/platform-customer.jar -Xms512M -Xmx512M -Xss256k $JAVA_OPTS -Djava.ext.dirs=$JAVA_HOME/jre/lib/ext --server.port=8083 &

查看服务启动状态

#jps
在这里插入图片描述

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

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

相关文章

C++之使用std::move与否实例区别(二百五十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

香港优才计划获批概率跌破20%,拿香港身份越来越难了?

香港优才计划获批概率跌破20%&#xff0c;拿香港身份越来越难了&#xff1f; 截止10月31日&#xff0c;香港各类人才引进计划共收到18万4538宗申请&#xff0c;获批11万5741宗&#xff0c;整体“获批率”为62.72%。 具体到项目获批率&#xff1a; ①优才计划共收到63979宗申请&…

最终方案(乱)

为什么要在mos管上并一个快恢复二极管 因为电机成感性&#xff0c;为了在关断期间给它提供一个续流回路

单片机编程原则

多任务编程的概念 方式一&#xff1a;实时操作系统&#xff08;不建议新手使用&#xff09; 方式二 &#xff1a;裸机多任务模型 逻辑多任务的基本原理 把三个任务分别分为一个一个的片段 然后先执行任务一的第一个切片 执行第二个任务的第一个片段 执行第三个任务的第一个片…

SystemC 学习之与 Verilog 的混合仿真(十)

1、SC 与 Verilog 的通信方式 Systemc 和 verilog 通信方式有两种&#xff0c;一种是 PLI&#xff0c;但是 PLI 只能 verilog 调用 c/c&#xff0c;不能从 c/c 直接调用 verilog&#xff0c;想要从 c/c 调用 verilog 的话&#xff0c;需要先用 verilog 调用 c/c 函数&#xff…

企业邮箱认证指南:安全与高效的邮箱认证方法

企业邮箱是专门为企业提供的电子邮件服务&#xff0c;安全性和专业性更高。在开始使用企业邮箱之前&#xff0c;很多人会有一些问题&#xff0c;比如企业邮箱需要认证吗、如何开通企业邮箱&#xff0c;以及哪款企业邮箱好。 1、企业邮箱在使用前需要认证吗&#xff1f; 答案是肯…

div中的两个元素怎么实现上下排列

案例: 这里面的分享活动页和获取抽奖机会两个文字上下排列怎么实现? 答案: 父元素加上两个属性: display: flex; flex-direction: column; 就实现了

分布式下多节点WebSocket消息收发

1、使用场景 2、疑问 第一次发送请求后&#xff0c;通过N1&#xff0c;W2&#xff0c;到达service2&#xff0c;建立websocket连接。 1、接下来发送的消息&#xff0c;通过Ngixn后和网关gateway后还能落在service2上面吗&#xff1f; 如果不能落在service2上&#xff0c;需要怎…

【发表案例】IF6.5+,中科院2区,2个月录用,6天见刊!

计算机类SCIE 【期刊简介】IF&#xff1a;6.5-7.0&#xff0c;JCR1区&#xff0c;中科院2区 【检索情况】SCIE 在检&#xff0c;正刊 【征稿领域】数据表示、存储和处理、交换和访问、数据丢失处理等机器学习相关研究&#xff1b;云到物的连续体&#xff1b;数据结构架构&am…

ClickHouse联合创始人、前Google副总裁Yury到访杭州玖章算术公司,双方建立生态合作

10月31日&#xff0c;ClickHouse联合创始人Yury到访未来科技城&#xff0c;与玖章算术创始人叶正盛和国际总经理Ni Demai展开沟通与推进合作。 图片备注&#xff1a;Ni Demai(左),Yury(中),叶正盛(右) ClickHouse是深受开发者青睐的实时分析型数据库&#xff0c;成立2年就发展成…

微信加好友操作频繁了,怎么办?

近来&#xff0c;微信的风控是越来越严重&#xff0c;因为本身微信是作为一个社交软件&#xff0c;但流量大适合用来做私域营销。在日常使用微信中&#xff0c;我们也要了解下微信加好友的规则。 目前微信加人的规则是&#xff1a; 1、通过附近人功能加人上限15人/天&#xf…

制作企业期刊的必备工具,这个很强!

制作企业期刊是一项重要的任务&#xff0c;它不仅可以帮助企业展示自己的品牌形象&#xff0c;还可以促进内部员工的交流和合作。为了制作出一份高质量的企业期刊&#xff0c;你需要一些必备的工具。今天&#xff0c;给大家分享一款实用的工具-------FLBOOK在线制作电子杂志平台…

MS90C385B——+3.3V 150MHz 的 24bit 平板显示器(FPD) LVDS 信号发送器

MS90C385B 芯片能够将 28bit 的 TTL 数据转换成 4 通道的低压差分 信号 (LVDS) 。时钟通道经过锁相之后&#xff0c;与数据通道并行输出。当时钟频 率为 150MHz 时&#xff0c; 24bit 的 RGB 数据、 3bit 的 LCD 时序数据和 1bit 的控 制数据以 1050Mbps…

GLSL: Shader cannot be patched for instancing.

最近在 unity 里碰到了这么一个错误&#xff0c;只有这么点信息&#xff0c;让人看着挺懵逼的&#xff0c;后来发现&#xff0c;是因为 unity 的 terrain 组件在设置里勾了 Draw Instanced 选项导致的&#xff0c;感觉应该是 unity 的 bug。 因为错出在 2021&#xff0c;2022就…

11月编程榜最新出炉,第一名很离谱

这段时间&#xff0c;随着人工智能的崛起&#xff0c;Python的地位水涨船高。有不少朋友感觉到危机重重。 其中&#xff0c;最明显的&#xff0c;是市场环境的变化&#xff1a; 外部招聘&#xff1a;Python岗位日均需求量高达15000&#xff01;不仅是程序员&#xff0c;内容编…

Java 集合框架,泛型,包装类

文章目录 集合框架泛型Java 中的泛型裸类型&#xff08;了解&#xff09;原理泛型的上界泛型方法通配符 包装类ArrayList构造常见操作 LinkedListStackQueuePriorityQueueMapMap.Entry<K, V>Map 常用方法 Set常用方法 集合框架 Vector 一个古老的集合类&#xff0c;实现了…

【EI会议征稿】第四届机械设计与仿真国际学术会议(MDS 2024)

【高录用快检索】第四届机械设计与仿真国际学术会议&#xff08;MDS 2024) 2024 4th International Conference on Mechanical Design and Simulation 2024年第四届机械设计与仿真国际学术会议&#xff08;MDS 2024) 将于2024年03月01-03日在中国西安召开。MDS 2024将围绕“…

C# NAudio 音频库

C# NAudio 音频库 NAudio安装NAudio简述简单示例1 NAudio安装 项目>NuGet包管理器 搜索NAudio点击安装&#xff0c;自动安装依赖库。 安装成功后工具箱会新增NAudio.WinForms控件 NAudio简述 NAudio为.NET平台下的开源库&#xff0c;采用ML-PL协议&#xff0c;开源地址…

雷达模糊函数及MATLAB仿真

文章目录 前言一、雷达模糊函数二、Matlab 仿真1、单脉冲模糊函数①、MATLAB 源码②、仿真结果1&#xff09;不确定函数三维图2&#xff09;不确定函数的等高图3&#xff09;模糊函数的三维图4&#xff09;模糊函数的等高图 2、单脉冲多普勒频率轴上的切面①、MATLAB 源码②、仿…

srs webrtc推拉流环境搭建(公网)

本地环境搭建 官方代码https://github.com/ossrs/srs 拉取代码&#xff1a; git clone https://github.com/ossrs/srs.gitcd ./configure make ./objs/srs -c conf/https.rtc.confsrs在公网上&#xff0c;由于srs是lite-ice端&#xff0c;导致他不会主动到srs获取自己的公网i…