如何使用 Wildfly 将 maven web 项目部署到 Heroku?

How to deploy a maven web project using Wildfly to Heroku?

我在 Wildfly 10 上构建了一个 Java EE 7 网络应用程序。

我正在尝试将它部署到 Heroku,但我无法使该应用程序运行。 到目前为止,我所能做的就是让 Wildfly 工作,但似乎 运行 没有我的应用程序。

我使用 git 推送应用程序:

git push heroku master

它是 运行 解压目标。

Procfile:

web: target/wildfly-10.1.0.Final/bin/standalone.sh -Djboss.http.port=$PORT -b 0.0.0.0

pom.xml

<!-- Commented to keep it simple -->
<build>
    <finalName>${project.artifactId}</finalName>
    <plugins>
        <plugin>
            <groupId>org.wildfly.plugins</groupId>
            <artifactId>wildfly-maven-plugin</artifactId>
            <version>${version.wildfly.maven.plugin}</version>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
                <execution>
                    <id>unpack</id>
                    <phase>package</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>org.wildfly</groupId>
                                <artifactId>wildfly-dist</artifactId>
                                <version>${version.wildfly}</version>
                                <type>zip</type>
                                <overWrite>false</overWrite>
                                <outputDirectory>target</outputDirectory>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.0.0</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
                <outputDirectory>target/wildfly-${version.wildfly}/standalone/deployments</outputDirectory>
                <warName>${project.artifactId}</warName>
            </configuration>
        </plugin>
    </plugins>
</build>

您需要将 ear/war 添加到您的 wildfly 部署文件夹中。为此,您需要一个单独的插件或可以做到这一点的东西。

我也想试试这个,所以我会在 ear pom 下使用这个插件:

            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-ear-plugin</artifactId>
                        <version>${version.ear.plugin}</version>
                        <configuration>
                    <outputDirectory>../pathto/deployments</outputDirectory>
                        </configuration>
                    </plugin>
                </plugins>
            </build>

您可能需要使用其他东西 war。

要测试它的工作原理,只需尝试编译它并观察您的应用程序是否在部署文件夹中。