依赖关系相关知识
-
SpringCloud实战小贴士:版本依赖关系去年在博客上连载了系列博文,虽然这部分内容得到了不少关注者们的支持,但是不得不说这些内容只是适用于Spring Cloud入门阶段对各个组件的初步认识。所以,今年除了将会继续更新《Spring Cloud构建微服务架构》系列的连载之外,准备再开一个新系列:《SpringCloud实战小贴士》,该系列文章内容将会聚焦在下面三个点上:常见问题的解析构建使用的技巧实战设计的思考开篇:Spring Cloud的版本依赖关系之前在一文中,我们已经介绍了Spring Cloud版本命名的由来以及版本号的规则,并列举了各个版本的依赖内容,以帮助我们选择合适的版本进行微服务实践。由于Spring Cloud的发展速度非常快,版本的更新非常频繁,同时成体系化的中文文档与教程又比较缺乏,所以很多初学者在搜索了网上的文章进行Spring Cloud的初次尝试时,经常会因为没有关注它的版本依赖关系而引发一些问题。比如平时被问最多的一个问题,在使用Feign的时候为什么报了如下错误:org.springframework.core.
-
90%的人都不知道的Node.js 依赖关系管理(上)转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 原文参考:https://dzone.com/articles/nodejs-dependency-management 引言 Node.js中的一个重要概念是依赖关系管理。本文就将带大家了解依赖管理的各种模式以及Node.js如何加载依赖。 Node.js编写模块化代码非常简单,我们可以使用单个js文件非模块化的编写所有应用程序的内容。 在这里你可能会问,模块(module)是什么,它又有什么作用。 大型项目的实施之中,会有很多分工协作,为了可以
-
利用semaphore的先V(release)再P(acquire)操作,实现线程的前置依赖关系。import java.util.concurrent.Semaphore;import java.util.concurrent.ThreadLocalRandom;/** * 利用semaphore的先V(release)再P(acquire)操作,实现线程的前置依赖关系。 * semaphore的容量是0 */public class SemaphorePVDemo { public static void main(String[] args) { Semaphore semaphore1 = new Semaphore(0);
-
微服务下 Spring Boot Maven 工程依赖关系管理单体 Spring Boot Maven 工程最基本的 pom.xml 包含工程信息、Spring Boot 父工程、属性配置、依赖包、构建插件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0<
依赖关系相关课程
-
Maven项目依赖管理 本套课程主要学习Maven的使用方式,从理念到实践、基础到应用,深入浅出的讲解配合贯穿全程的练习,让你深入掌握基于Maven管理Java项目的方式
讲师:大牧莫邪 入门 8619人正在学习
依赖关系相关教程
- 2.3 添加依赖 注意:mall 项目为一个实例项目,中间可能会存在某些不太合理的地方,我们这里更多的关注项目构建过程。mall-account 项目为用户项目,需要被 mall-order 项目、mall-delivery 项目和 mall-web 项目依赖;mall-order 项目为订单项目,需要被 mall-delivery 项目和 mall-web 项目依赖;mall-commodity 项目为商品项目,需要被 mall-web 模块依赖;mall-delivery 项目为物流项目,需要被 mall-web 项目依赖。我们首先在父工程 mall-aggregate 的 pom.xml 文件中,添加 dependencyManagement 节点元素。<properties> <junit.version>4.11</junit.version></properties><dependencyManagement> <dependencies> <dependency> <groupId>com.mic.tech</groupId> <artifactId>mall-account</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>com.mic.tech</groupId> <artifactId>mall-commodity</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>com.mic.tech</groupId> <artifactId>mall-order</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>com.mic.tech</groupId> <artifactId>mall-delivery</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies></dependencyManagement>然后,依次在各个子工程中,根据子项目之间的依赖关系,添加对应的依赖。在添加完依赖之后,我们可以使用之前安装过的 Maven Helper 插件来生成整个工程的依赖关系图。生成之后的依赖关系图如下:从这个图中,我们可以清楚看到目前 mall 工程各个模块直接的依赖关系。在实际的开发过程中,可以根据生成的依赖关系图来判断是否存在某些没必要引入的依赖,进行依赖优化。
- 1.1 依赖的范围 Maven 在编译和运行以及执行测试用例的时候,分别会使用不同的 classpath。而 Maven 的依赖范围则是用来控制依赖与不同 classpath 关系的。Maven 的依赖范围分为以下几种:compile: 编译依赖范围。Maven 默认的依赖范围,该范围的依赖对编译,运行,测试不同的classpath 都有效。例如我们项目中的 spring-boot-starter;test: 测试依赖范围。该依赖范围只对测试 classpath 有效,在编译项目或者运行项目的时候,是无法使用此类依赖的。例如我们项目中的 spring-boot-starter-test;provided: 已提供依赖范围。该 Maven 依赖对于编译和测试的 classpath 有效,但是在运行时无效;runtime: 运行时依赖范围。顾名思义,该依赖范围对测试和运行的 classpath 有效,但是在编译时无效;system: 系统依赖范围。该依赖范围与 classpath 的关系与 provided 依赖范围是相同的。但是,在使用时需要谨慎注意,因为此类依赖大多数是与本机绑定的,而不是通过Maven仓库解析出来的,切换环境后,可能会导致依赖失效或者依赖错误。
- 1.2 添加一个依赖 使用 yarn add 命令,如添加vue-cli依赖:yarn add vue-cli如果不写版本号,默认安装最新版本,如果需要安装指定版本,请按照如下格式添加依赖:yarn add vue-cli@x.x.x此操作将自动在 package.json中添加对应的依赖,同时更新yarn.lock文件的版本信息。我们还可以添加依赖到其他类型的依赖关系如:yarn add --dev 添加到 devDependenciesyarn add --peer 添加到 peerDependenciesyarn add --optional 添加到 optionalDependencies具体的依赖关系类型,yarn的官网列举如下:最后,我们执行 yarn add vue-cli,出现 success信息,并提示我们具体安包的数量,说明依赖安装成功 效果如图:我们可以看到我们的package.json文件中多出了预想的依赖信息,并且项目目录中多出了 node_modules 文件夹,所有的依赖相关文件都被安装在了这个文件夹中,大功告成!
- 6.2 在 pom.xml 中引入相关依赖 引入 Web 项目及 Thymeleaf 模板相关的依赖项。实例: <!-- 引入web项目相关依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- ThymeLeaf依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
- 2.2 查看项目的任务依赖 要查看项目的依赖关系图,我们可以运行以下命令:$ gradle dependencies......省略部分输出.......kaptTestRelease\--- org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.2.51 +--- org.jetbrains.kotlin:kotlin-stdlib:1.2.51 | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.2.51 | \--- org.jetbrains:annotations:13.0 \--- org.jetbrains.kotlin:kotlin-compiler-embeddable:1.2.51 +--- org.jetbrains.kotlin:kotlin-stdlib:1.2.51 (*) \--- org.jetbrains.kotlin:kotlin-script-runtime:1.2.51lintChecks - Configuration to apply external lint check jarNo dependencies......省略部分输出.......运行该命令后我们可以在控制台看到项目的整体依赖关系和各个模块的依赖关系图,如上面的部分输出所示。Tips:上面我们运行的命令输出的是整个项目的依赖,有时候我们只需要查查看当前 module 的依赖,那么我们怎么查查看呢?如下,我们输入gradle [module_name]:dependencies,例如我们想要查看 app 模块的依赖,我们可以执行如下命令://查看APP模块的依赖$ gradle app:dependencies
- 2.2 依赖管理 其实问题并没有完全解决,并不是所有的子模块都需要引入 fastjson-1.2.49.jar 这个依赖,那要怎么办呢?在 POM 中,我们可以在父模块中声明 dependencyManagement 元素,让子模块来继承。dependencyManagement 元素并不会实际的引入依赖,但是可以起到很好的约束依赖的作用。首先,我们在父模块的 pom.xml 文件中声明这个元素,并加入 fastjson-1.2.49.jar 这个依赖。<properties> <fastjson.version>1.2.49</fastjson.version></properties><dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version> </dependency> </dependencies></dependencyManagement>然后,我们在 mall-core 模块中添加这个依赖,但是我们并不需要再声明version。<dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> </dependency></dependencies>这时候,我们分别查看父模块与子模块所引入的依赖,会发现,只有子模块中有引入这个依赖,而父模块中,并没有。父模块依赖引入情况 而子模块中已经引入了这个依赖。 子模块依赖引入情况 我们通过 Maven 继承的特性,来进行依赖管理,可以更好的控制依赖的引入。而 Maven 对于插件的管理,也存在类似的元素可以使用(pluginmanagement 元素),可以做到相同的效果。
依赖关系相关搜索
-
yarn
yum
压缩工具
依赖关系
移动app
移动终端
移位操作
移位运算符
异常处理
易语言教程
音频格式
音频管理器
引入css
引用类型
英语词汇
用户界面
语言编程
语言工具
语言学习
语言转换