Java Heroku段塞尺寸计算?

Java Heroku段塞尺寸计算?,java,gwt,maven,build,heroku,Java,Gwt,Maven,Build,Heroku,Heroku如何计算段塞大小 我在做一个简单的谷歌网络工具包网络应用。我使用SpringRoo来帮助我编写锅炉代码,它创建了一个小应用程序“expenses”,与GoogleIO上显示的应用程序相同 在生成的POM.xml文件中,我添加了一个jetty runner,就像在Heroku的spring mvc教程中一样 现在,当我在终端中运行git push heroku master时,maven开始在heroku端获取依赖项,我获得了[INFO]构建成功,但heroku拒绝了我的推送 ----

Heroku如何计算段塞大小

我在做一个简单的谷歌网络工具包网络应用。我使用SpringRoo来帮助我编写锅炉代码,它创建了一个小应用程序“expenses”,与GoogleIO上显示的应用程序相同

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

现在,当我在终端中运行
git push heroku master
时,maven开始在heroku端获取依赖项,我获得了
[INFO]构建成功
,但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计算它的弹头大小?我已经阅读了他们的文档,但非常稀少。

您的段塞大小将在成功编译结束时显示。通过重新签出应用程序、删除.git目录并运行du-hsc,您可以粗略估计本地的slug大小

$ du -hsc | grep total

由于这是Google上最早的链接之一,我想我应该添加我找到的解决方案,通过Chris Auer的一篇简单博客文章,其中详细介绍了添加maven插件执行:

编辑:根据oers的评论,上面链接的亮点是在插件执行中声明maven clean插件,包括目标/目录(和所有子目录),同时排除*.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>
....

....
maven清洁插件
2.4.1
目标/
**/*
依赖项/*.jar
*.战争
假的
真的
自动清洗
安装
清洁的
....

您可以共享pom.xml和.gitignore文件吗?是的,在这里。希望它们完好无损,因为我已经做了一些工作,但我已经从另一个分支机构获取了它们。我没有看到任何东西会导致鼻涕虫这么大。你能申请支持吗?完成后,我提出了一个低优先级的请求,因为这只是为了玩,而不是为了制作:)如果你能写出来,如果这个问题得到解决,那就太酷了!鉴于最初的问题是关于Java应用程序的,上述计算也应该在应用程序编译后进行(通过
mvn package
)以包括生成输出。@ryanbrainard是的。听起来很合理。此外,它还为您提供了一些有关可传递依赖项管理的想法。Heroku上的Java应用程序已经需要在所有可传递依赖项中进行复制,因此这些将包含在计算中。例如,请参见在本示例项目中使用绑定到
包的
副本依赖项
,虽然这在理论上可以回答问题,但在此处包含答案的基本部分,并提供链接以供参考。