微服务项目手动打成jar包

微服务项目手动打包jar运行,并在Linus上运行

1、项目结构,打包准备

微服务项目手动打成jar包_第1张图片

如图所示,需要把所有顶层模块的打包方式都设置成pom,所有需要打包的子模块的打包方式都改为jar,

很关键的一步:

在需要打包,并且有SpringBootApplication注解标注主类的子模块中的pom文件中加入:

<build>
    
    <plugins>
        <plugin>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-maven-pluginartifactId>
        plugin>
    plugins>
build>

为了读取到mapper中的内容,需要在父项目中加入以下配置:

    
    <build>
        <resources>
            <resource>
                <directory>src/main/javadirectory>
                <includes>
                    <include>**/*.xmlinclude>
                includes>
                <filtering>falsefiltering>
            resource>
        resources>

    build>

最后,项目的目录如下

总工程的:

    <modules>
        <module>servicemodule>
        <module>commonmodule>
        <module>infrastructuremodule>
    modules>

service中的:

    <modules>
        <module>service_ucentermodule>
        <module>service_devicemodule>
        <module>service_ossmodule>
    modules>

infrastructure中的:


 <modules>
        <module>api_gatewaymodule>
    modules>

common中的:

    <modules>
        <module>service_basemodule>
        <module>service_utilmodule>
    modules>

2、打包流程

1、先对总工程进行clean和install

如果遇到问题,可能是相互依赖的关系,比如某个模块直接引入了common依赖,但是common是父模块,没有jar包,所以把依赖改成common下的每个子模块即可。

微服务项目手动打成jar包_第2张图片

2、再对总工程下的每个父模块进行clean和package

顶层模块的打包顺序为:common ==> infrastructure ==> service

微服务项目手动打成jar包_第3张图片

至此,每个子模块的jar包都会出现在target目录下。

可以进入到本地的maven仓库中进行查看

3、部署(安装完java,maven,mysql等环境)

配置环境,见《项目部署》

需要将每个项目的配置文件放到jar包的同一目录下,这样才可以找到配置文件。否则会报错,配置文件不起作用。

Linux 运行jar包命令如下:

方式一

java -jar service_device-0.0.1-SNAPSHOT.jar

特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出

那如何让窗口不锁定?

方式二

java -jar shareniu.jar &

&代表在后台运行。

特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。

继续改进,如何让窗口关闭时,程序仍然运行?

方式三,一般使用这种方式

nohup java -jar shareniu.jar &

nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行

当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。

方式四

nohup java -jar shareniu.jar >/dev/null  &  

解释下 >temp.txt

command >out.file

command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。

可通过jobs命令查看后台运行任务

jobs

那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。
如果想将某个作业调回前台控制,只需要 fg + 编号即可。

查看某端口占用的线程的pid

netstat -nlp |grep :9181

le文件中。

可通过jobs命令查看后台运行任务

jobs

那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。
如果想将某个作业调回前台控制,只需要 fg + 编号即可。

查看某端口占用的线程的pid

netstat -nlp |grep :9181

你可能感兴趣的:(Linux,jar,maven,java)