如何减小Maven可执行Jar文件的大小。目前是255mb,不允许在Cloudformation中部署。
我正在通过cloudformation进行部署——>Lambda和API get .
如果我能把文件从255mb缩小,那么我的问题就解决了。
我从JAR文件中看到,以下2个依赖项占用195 MB。
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.931</version>
</dependency>
<dependency>
<groupId>com.amazonaws.serverless</groupId>
<artifactId>aws-serverless-java-container-spring</artifactId>
<version>[0.1,)</version>
我应该怎么做?
完整的Pom XML文件为-
Pom.xml -
4.0.0org.springframework.bootspring-boot-starter-parent2.1.1.RELEASEcom.myapp.appmyapp-api0.0.1-SNAPSHOTmyapp-apiSpring Boot的演示项目& lt; java.version> 1.8 & lt;/java.version>org.springframework.bootspring-boot-starter-actuatorcom.amazonaws.serverlessaws-serverless-java-container-springboot21.5.2com.amazonawsaws-java-sdk1.11.931org.springframework.bootspring-boot-starter-data-mongodborg.springframework.bootspring-boot-starter-securityorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-mailorg.springframework.bootspring-boot-devtools运行时真正的com.amazonaws.serverlessaws-serverless-java-container-spring[0.1,)org.projectlomboklombok真正的org.springframework.bootspring-boot-starter-test测试
<dependency> <groupId>net.authorize</groupId> <artifactId>anet-java-sdk</artifactId> <version>2.0.6</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-bean-validators</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> </dependency> <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>5.2</version> </dependency> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.7</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.15</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.15</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.1.0</version> <configuration> <excludes> <exclude>*/.xml</exclude> </excludes> <archive> <compress>true</compress> </archive> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build> </project>
问题已解决,我正在使用AWS依赖-
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.931</version>
</dependency>
我不需要所有的依赖关系,我只需要S3和Lambda。所以我们要去掉这个依赖。它减少了我的Jar文件。255mb ~ 50mb