下面显示了我的POM的层次结构.
你可以看到我们有一个公司的父母pom用于春季启动项目.这个POM有spring-boot-starter作为它的父级,它导入我们自己的依赖管理BOM.
[INFO] --- hierarchy-maven-plugin:1.4:tree (default-cli) @ user-service ---
[INFO] PARENT com.MY_COMPANY.platform:user:3.20.14-SNAPSHOT
[INFO] PARENT com.MY_COMPANY.platform:spring-boot-parent:3.20.12-SNAPSHOT
[INFO] PARENT org.springframework.boot:spring-boot-starter-parent:1.5.12.RELEASE
[INFO] PARENT org.springframework.boot:spring-boot-dependencies:1.5.12.RELEASE <<<< This pom defines assertJ 2.x
[INFO] [ other imports ]
[INFO] IMPORT com.MY_COMPANY:dependencyManagementBase:2.23.14-SNAPSHOT <<<<<<<<<<<< This pom defines assertJ 3.x
[INFO] IMPORT com.MY_COMPANY.platform:platform-dependency-management:1.20.7
[INFO] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
为了专注于特定的,我们在依赖管理中定义AssertJ 3; 但是,spring-boot-dependencies定义了AssertJ 2.与assertJ没什么关系,但还有其他类似Mongo-Java-Driver的鱼没有拿起我们的版本.
Maven如何选择优先权?为什么我们的依赖管理不能赢得远祖的依赖管理?
我还注意到,如果我将AssertJ添加为MY_COMPANY.platform:spring-boot-parent的依赖项,它也不会在我们的依赖管理中使用该版本(所以我现在只保留它,所以层次结构下显微镜较短).
编辑 - 添加缩写的POM
com.MY_COMPANY.platform:弹簧引导父
<?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</modelVersion>
<groupId>com.MYCOMPANY.platform</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>3.20.12-SNAPSHOT</version>
<packaging>pom</packaging>
<prerequisites>
<maven>3.0.4</maven>
</prerequisites>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.12.RELEASE</version>
</parent>
<properties>
<MYCOMPANYdependencymanagement.version>2.23.13</MYCOMPANYdependencymanagement.version>
</properties> …Run Code Online (Sandbox Code Playgroud) 我有一个包含大量数据的文件,我想对它进行排序,以便在任何给定时间仅将一部分数据保存在内存中。
我注意到合并排序在外部排序中很流行,但是我想知道是否可以使用堆(最小或最大)来完成。基本上,我的目标是在100个项目的列表中获得前10个项目(使用任意数字),同时在内存中保存的项目绝不超过10个。
我最了解堆,并了解堆数据将按适当的顺序排列,从中可以将其最后一部分作为解决方案,但我不知道如何在没有I / O的情况下进行处理。每一个freakin项目。
有想法吗?
谢谢!:D