java - Heroku slug 大小计算?

标签 java gwt maven build heroku

Heroku 如何计算 slug 大小?

我正在做一个简单的 Google 网络工具包网络应用程序。我使用 Spring Roo 帮助我编写锅炉代码,它创建了一个小应用程序 “expenses”,与在 Google IO 上展示的应用程序相同。

在生成的 POM.xml 文件中,我添加了一个 jetty-runner,就像在 Heroku 的 spring mvc 教程中所做的那样。

现在,当我在终端 Maven 中运行 git push heroku master 时,开始在 Heroku 端获取依赖项,我得到了 [INFO] BUILD SUCCESS 但随后 Heroku 拒绝了我的推送.

-----> Push rejected, your compiled slug is 138.0MB (max is 100MB).
   See: http://devcenter.heroku.com/articles/slug-size !     Heroku push rejected, slug too large

我生成的 war 文件在本地创建时最终为 31Mb。但是目标目录最终会变成编译后的 slug 大小,所以我添加了一个 slugignore 文件。

$ cat .slugignore
target/*
!target/*.war

将它推送到 Heroku,它仍然向我抛出这个推送被拒绝,你编译的 slug 是 138.0MB(最大是 100MB)。

所以我的问题是 Heroku 计算其 slug 大小?我已阅读他们的文档,但内容非常稀疏。

最佳答案

由于这是 Google 上的第一个链接,我想我应该通过 Chris Auer 的一篇简单的博客文章添加我找到的解决方案,其中详细介绍了添加 maven 插件执行:http://enlightenmint.com/blog/2012/06/22/reducing-slug-size-for-heroku.html

编辑:根据 oers 评论,上述链接的重点是在您的插件执行中声明 maven-clean-plugin 并包括 target/目录(和所有子目录),同时排除 *.war 文件。该插件的执行阶段应该在安装阶段调用(而不仅仅是清理阶段)。

完整的(以防该站点出现故障),它看起来像这样:

<plugins>
....
<plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <version>2.4.1</version>
    <configuration>
        <filesets>
            <fileset>
                <directory>target/</directory>
                <includes>
                    <include>**/*</include>
                </includes>
                <excludes>
                    <exclude>dependency/*.jar</exclude>
                    <exclude>*.war</exclude>
                </excludes>
                <followSymlinks>false</followSymlinks>
            </fileset>
        </filesets>
        <excludeDefaultDirectories>true</excludeDefaultDirectories>
    </configuration>
    <executions>
        <execution>
            <id>auto-clean</id>
            <phase>install</phase>
            <goals>
                <goal>clean</goal>
            </goals>
        </execution>
    </executions>
</plugin>
....

关于java - Heroku slug 大小计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7331863/

相关文章:

java - 使用loci.plugins(生物格式)时出现SLF4J version_mismatch错误

gwt - 旋转 Canvas 上的putImageData()工作不正确

java - 如何为 Spring Roo 项目创建 Maven 模块?

java - maven-jaxb2-plugin 在同一项目中重用公共(public) XSD

java - 使用扫描仪读取文件 double 值 - InputMismatchException?

java - java中equals方法的正确用法是?

javascript - 具有 Backbone 结构的JSNI

javascript - GWT - 用于客户端验证的简单 Javascript

android - 上传到bintray.com的文件有什么区别?

java - 有没有办法用比这更少的代码扩展现有的接口(interface)实现?