- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 Spring Boot 实现一个微服务,它构建了一个打包了所有必需依赖项的“fat jar”,这真是太好了。
但是,它是我什至不使用的打包依赖项,例如:我正在使用 Cassandra 数据库,
但由于 spring-starter 依赖项,它仍然将 MongoDB 依赖项打包在 100 多个其他数据库中
,从而产生24 MB jar 文件!
我在这里做错了什么吗?是否可以告诉 Maven 排除所有实际未使用的依赖项?
编辑:我错了,它只包含必要的依赖项,忽略这个问题。
这是 pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.1.8.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- Cassandra -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-cassandra</artifactId>
<version>1.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
更新:这是依赖项:树
[INFO] com.test.project:dataloader:jar:0.0.1
[INFO] +- org.springframework.boot:spring-boot-starter:jar:1.1.8.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot:jar:1.1.8.RELEASE:compile
[INFO] | | \- org.springframework:spring-context:jar:4.0.7.RELEASE:compile
[INFO] | | \- org.springframework:spring-aop:jar:4.0.7.RELEASE:compile
[INFO] | | \- aopalliance:aopalliance:jar:1.0:compile
[INFO] | +- org.springframework.boot:spring-boot-autoconfigure:jar:1.1.8.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-logging:jar:1.1.8.RELEASE:compile
[INFO] | | +- org.slf4j:jul-to-slf4j:jar:1.7.7:compile
[INFO] | | +- org.slf4j:log4j-over-slf4j:jar:1.7.7:compile
[INFO] | | \- ch.qos.logback:logback-classic:jar:1.1.2:compile
[INFO] | | \- ch.qos.logback:logback-core:jar:1.1.2:compile
[INFO] | +- org.springframework:spring-core:jar:4.0.7.RELEASE:compile
[INFO] | \- org.yaml:snakeyaml:jar:1.13:compile
[INFO] +- org.springframework.data:spring-data-cassandra:jar:1.1.0.RELEASE:compile
[INFO] | +- org.springframework.data:spring-cql:jar:1.0.4.RELEASE:compile
[INFO] | | +- org.springframework:spring-beans:jar:4.0.7.RELEASE:compile
[INFO] | | +- org.springframework:spring-tx:jar:4.0.7.RELEASE:compile
[INFO] | | +- org.apache.cassandra:cassandra-all:jar:2.0.6:compile
[INFO] | | | +- org.xerial.snappy:snappy-java:jar:1.0.5:compile
[INFO] | | | +- net.jpountz.lz4:lz4:jar:1.2.0:compile
[INFO] | | | +- com.ning:compress-lzf:jar:0.8.4:compile
[INFO] | | | +- commons-cli:commons-cli:jar:1.1:compile
[INFO] | | | +- commons-codec:commons-codec:jar:1.2:compile
[INFO] | | | +- org.apache.commons:commons-lang3:jar:3.1:compile
[INFO] | | | +- com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.3:compile
[INFO] | | | +- org.antlr:antlr:jar:3.2:compile
[INFO] | | | | \- org.antlr:antlr-runtime:jar:3.2:compile
[INFO] | | | | \- org.antlr:stringtemplate:jar:3.2:compile
[INFO] | | | | \- antlr:antlr:jar:2.7.7:compile
[INFO] | | | +- org.codehaus.jackson:jackson-core-asl:jar:1.9.2:compile
[INFO] | | | +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.2:compile
[INFO] | | | +- jline:jline:jar:1.0:compile
[INFO] | | | +- com.googlecode.json-simple:json-simple:jar:1.1:compile
[INFO] | | | +- com.github.stephenc.high-scale-lib:high-scale-lib:jar:1.1.2:compile
[INFO] | | | +- edu.stanford.ppl:snaptree:jar:0.1:compile
[INFO] | | | +- org.mindrot:jbcrypt:jar:0.3m:compile
[INFO] | | | +- com.yammer.metrics:metrics-core:jar:2.2.0:compile
[INFO] | | | +- com.addthis.metrics:reporter-config:jar:2.1.0:compile
[INFO] | | | | \- org.hibernate:hibernate-validator:jar:5.0.3.Final:compile
[INFO] | | | | +- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] | | | | +- org.jboss.logging:jboss-logging:jar:3.1.1.GA:compile
[INFO] | | | | \- com.fasterxml:classmate:jar:1.0.0:compile
[INFO] | | | +- com.thinkaurelius.thrift:thrift-server:jar:0.3.3:compile
[INFO] | | | | \- com.lmax:disruptor:jar:3.0.1:compile
[INFO] | | | +- net.sf.supercsv:super-csv:jar:2.1.0:compile
[INFO] | | | +- log4j:log4j:jar:1.2.17:compile
[INFO] | | | +- org.apache.thrift:libthrift:jar:0.9.1:compile
[INFO] | | | | +- org.apache.httpcomponents:httpclient:jar:4.3.5:compile
[INFO] | | | | \- org.apache.httpcomponents:httpcore:jar:4.2.4:compile
[INFO] | | | +- org.apache.cassandra:cassandra-thrift:jar:2.0.6:compile
[INFO] | | | +- com.github.stephenc:jamm:jar:0.2.5:compile
[INFO] | | | \- io.netty:netty:jar:3.6.6.Final:compile
[INFO] | | +- com.google.guava:guava:jar:15.0:compile
[INFO] | | \- org.liquibase:liquibase-core:jar:3.0.8:compile
[INFO] | +- org.springframework:spring-expression:jar:4.0.7.RELEASE:compile
[INFO] | +- org.springframework.data:spring-data-commons:jar:1.8.4.RELEASE:compile
[INFO] | +- com.datastax.cassandra:cassandra-driver-dse:jar:2.0.4:compile
[INFO] | | \- com.datastax.cassandra:cassandra-driver-core:jar:2.0.4:compile
[INFO] | | \- com.codahale.metrics:metrics-core:jar:3.0.2:compile
[INFO] | +- org.slf4j:slf4j-api:jar:1.7.7:compile
[INFO] | \- org.slf4j:jcl-over-slf4j:jar:1.7.7:compile
[INFO] \- org.springframework.boot:spring-boot-starter-test:jar:1.1.8.RELEASE:test
[INFO] +- junit:junit:jar:4.11:compile
[INFO] +- org.mockito:mockito-core:jar:1.9.5:test
[INFO] | \- org.objenesis:objenesis:jar:1.0:test
[INFO] +- org.hamcrest:hamcrest-core:jar:1.3:compile
[INFO] +- org.hamcrest:hamcrest-library:jar:1.3:test
[INFO] \- org.springframework:spring-test:jar:4.0.7.RELEASE:test
最佳答案
我怀疑 spring-data-cassandra (或其他)依赖项的父项涵盖了所有其他数据库,并且它们被拉取了。您可以使用 <exclusion>
排除那些您知道不需要的内容。标签
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-cassandra</artifactId>
<version>1.1.0.RELEASE</version>
<exclusions>
<exclusion>
<groupId>..</groupId>
<artifactId>..</artifactId>
</exclusion>
</exclusions>
</dependency>
关于java - 如何阻止 Spring Boot 构建具有未使用的依赖项的 "fat jar",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26330519/
我正在用 C 实现 FAT 文件系统。我遵循 microsoft 发布的规范 ( http://read.pudn.com/downloads77/ebook/294884/FAT32%20Spec%
我正在尝试从具有 armv6 和 armv7 架构的库中删除重复对象,即, $ lipo -info libx.a Architectures in the fat file: libx.a are:
我正在学习 FAT 文件系统以及如何计算 FAT 大小。现在,我有这个问题: 假设磁盘大小为 32 MB,块大小为 1 KB。计算FAT16的大小。 现在,我知道要计算它,我们将每个条目的位数乘以块数
我正在使用 Chan's FAT library这似乎提供了一个标准的 FAT 文件系统 API。 API 似乎没有直接提供列出给定目录中的所有文件。 列出可以访问标准 FAT API 的目录中所有文
我有一个数据库实现,每条记录一个文件,我有大约 10000 条记录。我正在尝试优化访问文件的性能,但我有点怀疑。 将文件拆分到文件夹中是否比将所有文件保存在单个文件夹中更好,以便快速访问文件?例如:文
我需要用 C 创建我自己的文件系统实现。我正计划创建一个类似于 FAT 系统的系统。我们得到一个大小为 10MB 的文件,它充当我们自己的“磁盘”。我知道 FAT 表存储簇号,根目录存储我们创建的每个
我正在尝试使用自定义引导加载程序开发一个小型操作系统。我在 OSDEV 方面有一点经验,但没有那么多......我的问题是第一阶段引导加载程序没有从磁盘加载秒数。这是 boot.asm 文件: org
最近在处理我的代码时,我注意到一些内存使用量显着增加,我在我的代码中看不到很多原因。所以我想知道是否有任何程序、技术或其他类型的工具可以扫描我的代码(Delphi)并为我估计哪些过程、函数和函数将是最
我知道这个问题已经被提出过多次,但我的目标与我在网上搜索到的内容略有不同。具体来说,我已经能够为 iPhone 构建静态库,但我能够构建的最终 fat 文件仅包含 arm 和 i386 架构(并且我不
我已经在几个上下文中阅读过“胖指针”这个术语,但我不确定它的确切含义以及它何时在 Rust 中使用。指针似乎是普通指针的两倍,但我不明白为什么。它似乎也与特征对象有关。 最佳答案 术语“胖指针”用于指
因此,我正在翻译示例代码,该示例代码说明如何使用Gradle从GroovyDSL到KotlinDSL创建胖子(我正在使用Gradle 5.3.1)。 我得到了GroovyDSL代码here: jar
我的 CPU 是小端字节序,文档告诉我它符合 FAT 规范的字节顺序。那么为什么我得到了 BS_jmpBoot 的有效地址(第一个扇区的字节 0-3),却没有得到 BPB_BytesPerSec 的有
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 6 年前。 Improve
我正在寻找一种方法来纯粹外部化 Spring boot 应用程序中的一些配置设置。例如:当双击 fat-JAR 文件时,它会从中加载配置,例如 myConfig.config,该文件与 fat-JAR
当涉及到使用 FAT 的文件系统时,这里出现了一个关于随机访问的直截了当的问题。 我看到了不同种类的图片/动画对 FAT 的不同解释,展示了不同的东西。我不明白如何在不通过文件一次的情况下进行随机访问
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 6 年前。 Improve
我正在编写一个嵌入式系统,其中我正在创建一个 USB 大容量存储设备驱动程序,该驱动程序使用 8MB RAM block 作为 FAT 文件系统。 尽管当时允许操作系统将我的 RAM 区域清零并格式化
这个问题在这里已经有了答案: ECMAScript 6 arrow function that returns an object (6 个答案) 关闭 5 年前。 是否可以将下面的代码写在一行中(
我正在尝试使用这些说明在 Windows 上安装无脂 crm http://guides.fatfreecrm.com/Setup-Microsoft-Windows.html 我正在安装mysql2
我已经在多个上下文中读到术语“胖指针”,但我不确定它的确切含义以及它在 Rust 中的使用时间。指针好像是普通指针的两倍大,但我不明白为什么。它似乎也与特征对象有关。 最佳答案 术语“胖指针”用于指代
我是一名优秀的程序员,十分优秀!