微服务项目(maven父子级项目)怎么打包

这篇具有很好参考价值的文章主要介绍了微服务项目(maven父子级项目)怎么打包。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本篇当中重点记录微服务项目(maven父子级项目)打包插件,文章没有一句废话, 就是直接复制粘贴到自己项目就可以用,亲测有效!

一、项目层级结构

这是最近做的微服务练习,项目是一个典型的聚合工程,mscloud的依赖就是用来管理版本号的,所有微服务有一个公共的依赖模块,就是专门存放util相关的common模块。

在实际开发当中层级结构大同小异,有的甚至会将service、dao都拆分成单独的模块。但是对于打包来说,是一样的。

关于ider创建聚合项目不熟练的,可以看一下我的这一篇文章:
https://blog.csdn.net/weixin_43888891/article/details/125267683

微服务项目(maven父子级项目)怎么打包
针对于打包我写了两种情况,一种是项目继承了spring-boot-starter-parent,一种是项目没有继承spring-boot-starter-parent的情况。

二、继承了spring-boot-starter-parent

如果项目继承了spring-boot-starter-parent,那我们可以直接在需要打jar包的子工程引入spring-boot-maven-plugin的依赖即可,不需要的不用引入,像common这些属于依赖包,并不是要直接运行的工程,他可能连启动类都没有,并不需要添加插件,添加了反而可能会报错,插件的作用是将依赖的jar一并打包到当前项目的jar当中,组成一个可直接运行的jar。

微服务项目(maven父子级项目)怎么打包

<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

之所以只需要引入spring-boot-maven-plugin并不做该插件的任何配置,原因是spring-boot-starter-parent当中的pom已经为我们做了插件依赖管理。也就是做了该插件的相关配置。

微服务项目(maven父子级项目)怎么打包

父工程可以选择性引入(可引可不引)该插件来跳过单元测试:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <!-- 打包跳过单元测试 -->
            <configuration>
                <skipTests>true</skipTests>
                <testFailureIgnore>true</testFailureIgnore>
            </configuration>
        </plugin>
</build>

三、未继承spring-boot-starter-parent

假如项目没有继承spring-boot-starter-parent,那我们就需要手动添加插件了。

父工程添加打包依赖:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <!-- 打包跳过单元测试 -->
            <configuration>
                <skipTests>true</skipTests>
                <testFailureIgnore>true</testFailureIgnore>
            </configuration>
        </plugin>

        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>utf-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

子工程打包依赖:

关于spring-boot-maven-plugin插件不了解的可以看我的这一篇文章:
https://blog.csdn.net/weixin_43888891/article/details/122523633

关于Maven当中resources标签不懂的可以看我的这一篇文章:
https://blog.csdn.net/weixin_43888891/article/details/122406081

本次依赖当中并没有用到resources标签,resources标签一般是当我们打出来的jar包少文件的时候会配置,但是基于上面项目案例,使用本篇文章的依赖打包 并没有出现少文件的情况所以没用到。

<build>
    <!-- 打出来的jar包名 -->
    <finalName>consumer-consul</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.4.2</version>
            <configuration>
            	<!-- 主启动类全类名 -->
                <mainClass>
                    com.gzl.cn.OrderConsulMain80
                </mainClass>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <!--可以把依赖的包都打包到生成的Jar包中-->
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

四、打包流程

一定是clean install根项目,也就是父项目,原因就是common项目是其他服务所依赖的项目,假如common有变化,而你只是clean install单个的微服务,这时候就会出现common新加的代码,你并没有依赖进去,如果你项目用到了common新加的类,这时候打包可能直接就报错了。

微服务项目(maven父子级项目)怎么打包文章来源地址https://www.toymoban.com/news/detail-411306.html

到了这里,关于微服务项目(maven父子级项目)怎么打包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 打包前后端项目并部署至服务器

    打包命令: npm run build 执行完命令后,会生成一个名为 dist 的文件夹,这个就是打包好的前端项目。 2.1、执行 maven 的 clean ,删除项目编译创建的 target 文件夹 2.2、执行 package,将项目打包至 target 文件夹下 3.1、连接服务器 3.2、在根目录创建文件夹,并上传打包好的前后端项

    2024年01月23日
    浏览(39)
  • 前端如何将项目打包部署到服务器

      本篇文章从前端项目打包开始,逐步完成项目部署到服务器的操作,这次咱们采取的部署方案是通过vscode中Remote-SSH和SFTP两个插件实现项目部署到服务器,并在服务器上通过nginx代理将请求转发到对应的端口。   先将自己开发完成的本地项目进行打包,打包之后会产生一个

    2024年03月14日
    浏览(45)
  • 如何将项目打包上传到NuGet服务器?

    作者:西瓜程序猿 主页传送门:https://www.cnblogs.com/kimiliucn 在我写[在.NET Framework中使用RocketMQ(阿里云版)]这篇博客的时候,因为封装了很多代码在单独的DLL中,包括生产者、消费者以及官方SDK等等,然后都在博客中体现出来导致博客大量代码,然后有位读者就建议打包成NuGet包

    2024年02月10日
    浏览(36)
  • jenkins 打包项目,并发布到其他服务器

    在jenkins的节点服务上进行项目的打包操作。 jenkins节点服务上需要的程序: 1.git 用于从gitlab上拉取项目,到jenkins节点服务器上的workspace目录中。 2.java 用于执行jenkins的一些操作。 3.maven 如果是maven项目,要用于管理依赖。 jenkins 配置 Publish over SSH 插件。用于将节点服务上打包

    2024年02月15日
    浏览(31)
  • Nuxt - 项目打包部署及上线到服务器流程(SSR 服务端渲染)

    网上大部分关于 Nuxt 打包部署教程真的是可以用五花八门来形容,这对于第一次接触的朋友简直是无从下手。 本文将尽可能详细的描述,打包部署及上线到服务器完整流程。 强烈建议您打开 官方文档,与本教程对照着,这有助于您更好的理解。 您需要先了解一下 Nuxt 命令及

    2024年02月09日
    浏览(43)
  • 在Maven中发布项目到Nexus私有服务器

    Sonatype Nexus 3.61.0-02 Maven 3.9.2 运行完成后可以在nexus看到已经上传上来了

    2024年02月06日
    浏览(33)
  • 如何将项目打包上传到NuGet服务器(图文教程)?

    作者:西瓜程序猿 主页传送门:https://www.cnblogs.com/kimiliucn 在我写[在.NET Framework中使用RocketMQ(阿里云版)]这篇博客的时候,因为封装了很多代码在单独的DLL中,包括生产者、消费者以及官方SDK等等,然后都在博客中体现出来导致博客大量代码,然后有位读者就建议打包成NuGet包

    2024年02月10日
    浏览(28)
  • Golang 打包go项目部署到linux服务器

    我们可以在终端中输入以下代码: 然后就会生成main-linux的二进制可执行文件,然后我们就可以将main-linux放到服务器中的任一目录中,然后我们就可以执行以下命令运行。 这是我们在网上可以搜索到的方法,但是我相信很多人通过这个方法尝试后发现,它并不能运行。我相信

    2024年02月16日
    浏览(40)
  • Vue+ElementUI项目打包部署到Ubuntu服务器中

    1、修改config/index.js中的assetsPublicPath: \\\'/\\\',修改为assetsPublicPath: \\\'./\\\' 2、在build/utils.js中增加publicPath: \\\'../../\\\' 3、打开终端,在根目录下执行npm run build进行打包,打包成功后会生成dist 4、将dist传输到服务器上(我已经把dist重命名为html) 5、服务器中如果没有nginx则安装nginx 6、配置

    2024年02月07日
    浏览(48)
  • Vue项目打包到服务器后请求接口报错404

    背景 :前端Vue项目打包后部署在服务器上,而后端接口在另外一台服务器。本地生产环境运行时因为在Vue中配置了proxy代理,所以项目运行正常。但是在服务器开发环境中,一直报错404。 原因 :在开发环境中设置了proxy代理后,打包时proxy代理就会失效,因为proxy代理并不会

    2024年02月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包