如何使用 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。
要测试它的工作原理,只需尝试编译它并观察您的应用程序是否在部署文件夹中。
我在 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。
要测试它的工作原理,只需尝试编译它并观察您的应用程序是否在部署文件夹中。