Maven父子结构的项目依赖使用以及打包依赖_微服务项目(maven父子级项目)怎么打包

Maven父子结构的项目依赖使用以及打包依赖

1:在父子结构项目中,如果要是用其他模块的类。在当前项目中的pom中 加入 其他模块的配置

 <dependency><groupId>com.spring.mySpring</groupId><artifactId>mySpring-utils</artifactId><version>0.0.1-SNAPSHOT</version></dependency>

其中的groupId与artifactId还有version要与对应的模块一致

2:如果当前模块依赖其他模块,而且在打包的时候需要把依赖也打进去,则需要配置

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!-- 指定程序的主类 --><configuration><mainClass>org.mySpring.service.TestService</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>

3:总的pom示例如下

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><parent><groupId>com.spring.mySpring</groupId><artifactId>mySpring-parent</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>mySpring-service</artifactId><name>mySpring-service</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><!--  使用其他子模块的依赖  --><dependency><groupId>com.spring.mySpring</groupId><artifactId>mySpring-utils</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies><!-- 打包的时候带其他的子模块 --><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!-- 指定程序的主类 --><configuration><mainClass>org.mySpring.service.TestService</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>
</project>

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

项目层级结构:

在这里插入图片描述
common中的是没有main方法的工具类,service中的是有main方法的业务代码。

打包须知

这种微服务项目或者说是maven父子级项目打包要解决的问题就是具体业务代码依赖工具类代码,利用idea的maven插件可以很方便做到。

  • 在cloud_parent,common,service这些上层文件夹管理模块中,添加pom
  • 在没有main方法的工具模块中只添加jar
  • 在具体的业务代码模块中添加:
<packaging>jar</packaging><build>//maven的打包插件<plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>//打包规则,打包时将resource文件夹打包进去<resources><resource><directory>src/main/java</directory><includes><include>**/*.yml</include><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.yml</include><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources>
</build>

根据maven的继承特性,我在service文件夹模块中添加
在这里插入图片描述
这样,只需在每个有mian方法的具体的业务模块中的pom中添加:

<build>//maven的打包插件<plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>        

最终打包:只需对最顶层模块进行clean,install,在每个模块对应的target目录中找到jar包。
在这里插入图片描述
在这里插入图片描述
最后附上maven配置:
在这里插入图片描述

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

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

相关文章

搭建一个完整的微服务项目

一.项目技术架构 1.技术栈 前台技术 Node.js、Npm、Vue.js、WebPack、Vue Cli、Element UI 后台架构 微服务架构&#xff1a;按照功能拆分N多个服务&#xff0c;每个服务可以独立技术选型,独立开发,独立部署,独立运维.&#xff0c;单个服务使用基于ssm的springboot&#xff0…

java 雅思_基于JAVA的雅思考试管理系统的设计与实现(SSH,MySQL)(含录像)

基于JAVA的雅思考试管理系统的设计与实现(SSH,MySQL)(含录像)(任务书,毕业论文12000字,程序代码,MySQL数据库)本文分析了基于JAVA的雅思考试管理系统的设计与实现技术&#xff0c;结合实际提出了本系统的总体结构设计和主要模块的功能实现。本系统分为二个子系统:管理员子系统&…

java开发利器 源码_Java开发的利器: 反编译工具 JD-GUI

老赵说起来也能算个Java程序员&#xff0c;可是写过的Java代码并不多&#xff0c;可老赵实实在在是从程序员干起的。虽然肚子里也装了不少的东西&#xff0c;可作为一件乐此不疲的事情&#xff0c;就是看那些所谓“高人”的代码。高人们的行事风格&#xff0c;十人十样&#xf…

Maven搭建Nexus私服

私服的介绍 1 什么是私服 私服是一种特殊的远程仓库&#xff0c;它是架设在局域网的仓库服务&#xff0c;私服代理广域网上的远程仓库&#xff0c;供局域网使用。 在企业开发中&#xff0c;私服的建设是有必要的&#xff0c;其好处如下&#xff1a; 1.1 节省资金、外网带宽…

Java啤酒生产系统描述_Java描述设计模式(03):工厂方法模式

一、工厂方法模式1、生活场景系统常见的数据导出功能&#xff1a;数据导出PDF、WORD等常见格式。2、工厂方法模式是类的创建模式&#xff0c;又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。工厂方法模式的用意是定义一个创建产品对象的工…

@Autowired(required=false)注入注意的问题

1、前言 在使用spring开发过程中&#xff0c;我们基本上都是使用Autowired这个注解&#xff0c;用来注入已有的bean。但是有些时候&#xff0c;会注入失败。当我们加上参数&#xff08;requiredfalse&#xff09;就能解决。今天整理一个我在实际开发中的例子 2、required属性…

什么是ip地址、子网掩码、网关和DNS?

什么是ip地址、子网掩码、网关和DNS&#xff1f; 什么是ip地址&#xff1f; IP是32位二进制数据&#xff0c;通常以十进制表示&#xff0c;并以“.”分隔。IP地址是一种逻辑地地址&#xff0c;用来标识网络中一个个主机&#xff0c;IP有唯一性&#xff0c;即每台机器的IP在全…

Dubbo:RPC原理

1、RPC原理 一次完整的RPC调用流程如下&#xff1a; 1&#xff09;服务消费方&#xff08;client&#xff09;调用以本地调用方式调用服务&#xff1b; 2&#xff09;client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体&#xff1b; 3&#xff09;clie…

java jni日志输出_java打印Jni层log

要在java层打印c的log必须引入这个头文件的宏定义:#ifndef __LOG#define __LOG#ifdef __cplusplusextern "C"{#endif#include//宏定义类似java 层的定义,不同级别的Log LOGI, LOGD, LOGW, LOGE, LOGF。 对就Java中的 Log.i log.d#define LOG_TAG "HelloJni"…

Dubbo基本原理机制

分布式服务框架&#xff1a; 高性能和透明化的RPC远程服务调用方案SOA服务治理方案Apache MINA 框架基于Reactor模型通信框架&#xff0c;基于tcp长连接 Dubbo缺省协议采用单一长连接和NIO异步通讯&#xff0c; 适合于小数据量大并发的服务调用&#xff0c;以及服务消费者机器…

Dubbo是如何进行远程服务调用的?(源码流程跟踪)

首先会分析Dubbo是如何进行远程服务调用的&#xff0c;如果不了解dubbo的服务暴露和服务调用&#xff0c;请去看前两篇dubbo的文章&#xff0c;然后后面我还会说一下dubbo的SPI机制 当我们在使用reference 注解的时候&#xff0c;来调用我们的提供者的Service对象的时候&#…

Redis五种数据类型及应用场景

Redis五种数据类型及应用场景 MySqlMemcached架构的问题 实际MySQL是适合进行海量数据存储的&#xff0c;通过Memcached将热点数据加载到cache&#xff0c;加速访问&#xff0c;很多公司都曾经使用过这样的架构&#xff0c;但随着业务数据量的不断增加&#xff0c;和访问量的…

WebSocket介绍和Socket的区别

WebSocket介绍与原理 WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。一开始的握手需要借助HTTP)请求完成。 ——百度百科 目的&#xff1a;即时通讯&#xff0c;替代轮询 应用场景&#xff1a;网站上的即时通讯是很常见的&#xf…

WebSocket协议入门介绍

文章目录WebSocket协议是什么WebSocket是应用层协议WebSocket与Http的区别为什么要使用WebSocket如何使用WebSocket客户端API在客户端使用WebSocket在服务端使用WebSocket反向代理对WebSocket的支持WebSocket协议是什么 WebSocket是应用层协议 WebSocket是基于TCP的应用层协议…

远程ykvm 插件移值java_Centos7 命令行下kvm安装windows,linux

查看是否支持egrep "svm|vmx" /proc/cpuinfo |uniq安装软件yum install libvirt -yyum -y install qemu-kvmsystemctl enable libvirtd && systemctl start libvirtd# 启动libvitd服务查看 ip add #查看是否有 virbr0网卡 yum install virt-installcentos7 例…

php7.0扩展yac,php扩展之yac安装

git克隆$ git clone https://github.com/laruence/yac.git解压安装注意这里的php-config可能不一样查看php-config位置$whereis php编译安装$ cd yac$ phpize$ ./configure --with-php-config/usr/bin/php-config$ make$ make install修改php.ini,载入扩展,重启php-fpmextensio…

springboot+websocket实现服务端、客户端

一、引言 小编最近一直在使用springboot框架开发项目&#xff0c;毕竟现在很多公司都在采用此框架&#xff0c;之后小编也会陆续写关于springboot开发常用功能的文章。 什么场景下会要使用到websocket的呢&#xff1f; websocket主要功能就是实现网络通讯&#xff0c;比如说…

输出有样式的php,PHP导出带样式的Excel

工作中做导出的时候&#xff0c;需要导出自定义的表格或嫌弃导出的Excel格式太难看了。需要设置颜色、字号大小、加粗、合并单元格等等。Paste_Image.pngPHP代码&#xff1a;php/**导出文件return string*/public function export(){$file_name "成绩单-".date(&quo…

idea创建多模块Springboot项目、导入多模块、删除多模块

前言 在eclipse中有Workspace&#xff08;工作空间&#xff09;和 Project&#xff08;工程&#xff09;的概念在 IDEA中只有 Project&#xff08;工程&#xff09;和 Module&#xff08;模块&#xff09;的概念。这个地方刚开始用的时候会很容易理不清它们之间的关系。在eclip…

包含内部类的.java文件编译后生成几个.class文件

如果一个类有内部类&#xff0c;编译将生成几个字节码文件&#xff0c;规则是怎样呢&#xff1f; 写在前&#xff0c;自己动手丰衣足食&#xff0c;结论只有个人实验支持&#xff0c;没有官方数据支持&#xff0c;欢迎自行查阅文档然后来指正&#xff0c;轻喷&#xff0c;谢谢…