是否有仅适用于S3的精简版AWS Java SDK JAR包?
嘿,这个场景我太熟悉了——80MB的全量AWS SDK确实没必要,尤其是你只用到S3功能的时候。这里有几个靠谱的解决办法:
针对S3的轻量化AWS SDK方案
优先选用AWS SDK for Java 2.x的单独S3模块
AWS SDK v2是完全模块化设计的,你可以只引入S3相关的依赖,不用下载整个臃肿的SDK。比如用Maven的话,只需要添加这一段依赖:<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3</artifactId> <version>请替换为最新稳定版本号</version> </dependency>这个单独模块的大小只有几MB,完全满足你的需求,而且v2的性能、API设计都比v1更优秀。
如果坚持用v1,只引入S3子模块
要是你还在使用AWS SDK for Java 1.x,也不用下载全量包。通过Maven/Gradle这类构建工具,只引入S3的专属依赖就行:
Maven依赖示例:<dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-s3</artifactId> <version>请替换为最新稳定版本号</version> </dependency>这样下载的JAR只会包含S3相关的类和必要的核心依赖,体积会大幅缩小。
手动精简已有的全量JAR(不推荐,但可行)
如果你已经下载了80MB的全量JAR,想要手动精简的话,可以用ProGuard或者ShadowJar这类工具:- ProGuard:配置规则只保留
com.amazonaws.services.s3相关的类以及它依赖的核心包,剔除其他服务模块、示例代码、文档等冗余内容。 - ShadowJar:在构建时指定只打包S3相关的包路径,生成一个精简后的独立JAR。
不过这种方法容易遗漏必要的依赖类,排查问题比较麻烦,还是优先推荐前两种方案。
- ProGuard:配置规则只保留
内容的提问来源于stack exchange,提问作者user3523268
相关产品推荐
相关产品推荐

