使用Git将Java应用程序部署到Heroku

时间:2015-12-23 06:05:32

标签: java heroku

我使用Spark框架编写的项目具有此构建配置。

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <verbose>true</verbose>
                    <fork>true</fork>
                    <compilerVersion>1.7</compilerVersion>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.13</version>
                <configuration>
                    <useSystemClassLoader>false</useSystemClassLoader>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.avaje</groupId>
                <artifactId>ebean-maven-enhancement-plugin</artifactId>
                <version>2.8.1</version>
                <executions>
                    <execution>
                        <id>main</id>
                        <phase>process-classes</phase>
                        <goals>
                            <goal>enhance</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <classSource>target/classes</classSource>
                    <packages>somepath.domain.**</packages>
                    <transformArgs>debug=1</transformArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>

它的主要类位于somepath.Bootstrap

Procfile位于pom旁边。

Procfile

Procfile的内容应该是什么?

(我正在通过git部署。)

2 个答案:

答案 0 :(得分:1)

Procfile包含将在部署应用程序后执行的命令(我猜测为git push heroku master)。 我不太熟悉spark,但我猜它可能是这样的:

web: mvn exec:java -Dexec.mainClass="somepath.Bootstrap"

答案 1 :(得分:1)

Procfile是一种机制,用于声明Heroku平台上应用程序的dynos运行的命令。

以下是Java应用程序的示例:

web: java -cp target/classes:target/dependency/* Main

这取自使用Spark的Heroku Java sample app

请注意,构建工具(如Maven)在运行时将无法使用。