服务器发布操作

2019-06-14  本文已影响0人  s1991721

CentOS 目录结构

节选自 https://blog.csdn.net/qq_33858250/article/details/81839619

CentOS的目录大体上可分为四类:管理类、用户类、应用程序类、信息类文件目录。

管理类

用户类

应用程序类

信息类

Java环境

安装JDK

官网 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

在官网下载需要的jdk版本

这样获取的下载地址有验证信息,才能够正确下载

cd /usr/local/

创建下载目录

mkdir download

开始下载

mv jdk-8u211-linux-x64.tar.gz\?AuthParam\=1560506772_1dbba8573bc6a8588bd51d95349718d4 jdk-8u211-linux-x64.tar.gz

重命名文件

tar -zxvf jdk-8u211-linux-x64.tar.gz -C /usr/local/

解压到

环境变量

vi /etc/profile

末尾添加

export JAVA_HOME=/usr/local/jdk1.8.0_211
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

保存退出

source /etc/profile 使生效

验证

发布

单模块打包

在项目目录下执行

mvn clean package -Dmaven.test.skip=true

-Dmaven.test.skip=true 跳过单元测试

打包成功后会在项目根路径下生成target目录,依据pom文件设置的项目名<finalName>sell</finalName>生成jar包

服务器创建项目路径

mkdir /opt/javaapps/

将项目jar文件复制到服务器

scp sell.jar root@10.2.26.161:/opt/javaapps/

多模块打包

根项目下pom文件不要<build>标签

顶层模块pom文件配置

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**.*</include>
                    <include>**/*.*</include><!-- i18n能读取到 -->
                    <include>**/*/*.*</include>
                </includes>
            </resource>
        </resources>

        <!-- 为jar包取名 -->
        <finalName>web</finalName>
        <plugins>
            <!-- 热布署 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--fork :  如果没有该项配置,这个devtools不会起作用,即应用不会restart -->
                    <fork>true</fork>
                    <mainClass>com.tianyi.ejiantong.EjiantongApplication</mainClass>
                    <layout>ZIP</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
                        </goals>
                        <!--可以生成不含依赖包的不可执行Jar包-->
                        <!-- configuration>
                          <classifier>exec</classifier>
                        </configuration> -->
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

底层被依赖模块pom文件不要<build>标签

在根目录下先clean删除target目录,再package生成target

分析:打包时会根据依赖关系逐层查找,所以需要在顶层模块配置build。而根目录下只是声明,所以不配。

防火墙

firewall-cmd --zone=public --add-port=8080/tcp --permanent

--zone=public:表示作用域为公共的;

--add-port=8080/tcp:添加tcp协议的端口8080;

--permanent:永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效;

firewall-cmd --reload 重新加载配置
systemctl restart firewalld.service 重启防火墙

80端口默认未开放

启动项目

nohup java -jar -Dserver.port=80 -Dspring.profiles.active=prod sell.jar > /dev/null 2>&1 &

-Dserver.port=80 开启的端口
-Dspring.profiles.active=prod 启动所使用的配置
nohup XXX > /dev/null 2>&1 & 让进程在后台运行

上一篇 下一篇

猜你喜欢

热点阅读