当前位置: 首页 > 知识库问答 >
问题:

由于我没有使用所有的服务,我可以降低AWS依赖项的大小吗?

赵英资
2023-03-14

我们最近开始为S3和SES使用AWS API,因此我们根据文档的要求将其添加到我们的依赖项中:

compile group: 'com.amazonaws', name: 'aws-java-sdk', version: '1.11.48'

但我们的WAR文件从仅66Mb增长到了近150Mb。有没有办法减少亚马逊代码的开销,因为它一直充斥着我们的Perm Gen和OOM。我暂时增加了Perm Gen,但如果我可以删除不必要的代码,我可能会再次降低Perm Gen。

有没有官方的方法来减少依赖关系?

共有3个答案

郎宏逸
2023-03-14

如果你在你的项目中只使用S3,我建议你看看这个。

https://www.baeldung.com/java-aws-s3-reactive

通过使用这种方式,JAR文件的大小显著减小

在我的例子中,当我使用整个AWS-SDK时,它大约有250 MB—在遵循上述方法后,它已减少到120 MB

宣意致
2023-03-14

用于Java的AWS SDK根据其各自的服务划分为包。

SDK文档建议使用Maven导入各个包。

使用Maven,将Java的BOM SDK添加到pom中。xml文件作为依赖项:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-bom</artifactId>
      <version>1.11.22</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

然后您可以指定要导入的各个包:

<dependencies>
  <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-s3</artifactId>
  </dependency>
  <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-ses</artifactId>
  </dependency>
</dependencies>

来源:http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-project-maven.html

段干博涉
2023-03-14

这就引入了整个AWS SDK。如果您只想使用特定的服务,那么只需包含这些特定的SDK组件即可。

例如,只包括SDK的S3和DynamoDB组件:

compile group: 'com.amazonaws', name: 'aws-java-sdk-s3', version: '1.11.48'
compile group: 'com.amazonaws', name: 'aws-java-sdk-dynamodb', version: '1.11.48'

您可以通过查看GitHub上的项目来查看不同的组件。

 类似资料:
  • 问题内容: 可以运行以了解模块任务的依赖性。有没有办法找到 buildscript依赖 的 传递依赖 ? 示例: 直接取决于: 可以在MVNRepository上看到。但是,这些工件有其自己的依赖性。有没有找到方法而无需手动遍历整个依赖树的方法? 为了澄清起见,我正在谈论的类路径由以下方式定义: 问题答案: 您可以使用以下命令: Udacity提供了很棒的Android Gradle 教程,但是您

  • 我正在NetBeans8.0 IDE中开发一个java webapplication,apache-tomcat服务器。 我有三个项目,其中一个有父pom.xml,另外两个有自己的pom.xml,这个应用程序有遗留代码,并且在运行时引用了服务器库中的ojdbc6 JAR。现在管理层希望我们将所有依赖项JAR移到WAR的WEB-INF/lib 我们在应用程序的本地文件夹中下载了JAR,但由于某种原因

  • Java和Maven新手。 我试图配置我的应用程序,以便我可以通过cmd线生成一个jar,其中包含我所有的依赖项。 据我所知,我正在正确设置Pom以使用此插件:https://github.com/javafx-maven-plugin/javafx-maven-plugin 以下是我在Pom中的依赖项: 在我的

  • 我想创建一个简单的Java类文件,并从我的所有项目访问它。 我知道我可以通过复制/粘贴方法来完成,但在这种情况下,类文件将独立于其原始源。我在原始类文件中所做的任何更改都不会影响已经复制到其他项目中的类文件。 在Android Studio中有链接类文件的方法吗?

  • 问题内容: 知道为什么我会收到此错误: persistence.xml mydatasource-ds.xml module.xml 问题答案: 错误的原因是您缺少依赖java:jboss / datasources / UserDS。使用Jboss 7.x +,您可以将这些数据源直接添加到您发现的应用服务器配置中。 独立配置和域配置之间的区别在于,独立配置仅针对具有该配置的一台应用服务器而设计。

  • 今天,当我尝试安装maven项目时,由于JDT依赖关系,我遇到了一个错误,下面是报告信息: 我尝试添加1.1.0组织。osgi。服务:组织。osgi。服务已加入项目,但仍无法解决此问题。为了避免依赖项更新,我指定了几乎所有版本的依赖项,但今天仍然遇到这个错误。这是我的pom。xml: 有没有办法解决这个问题?