openshift:jar maven 项目中没有主要清单属性
openshift: no main manifest attribute in jar maven project
我正在尝试使用 openjdk8 source to image 策略在 minishift 中部署一个 maven 项目。该应用程序已构建并部署,但是,它在 运行 时失败并出现以下错误:
Starting the Java application using /opt/run-java/run-java.sh ...
exec java -javaagent:/opt/jolokia/jolokia.jar=config=/opt/jolokia/etc/jolokia.properties -XX:+UseParallelGC -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -XX:MaxMetaspaceSize=100m -XX:+ExitOnOutOfMemoryError -cp . -jar /deployments/app-1.0-SNAPSHOT.jar
no main manifest attribute, in /deployments/app-1.0-SNAPSHOT.jar
我有这个 pom.xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.mypackage.MyClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
我认为在 maven pom 上添加清单条目就足够了。
我必须提供单独的清单文件吗?
我是否必须提供额外的 VM 参数来指定主要 class?如果是这样,我该如何在 openshift 中做到这一点?
还有其他更好的选择吗?
将新环境变量 JAVA_MAIN_CLASS
添加到您的部署配置或通过 Openshift 用户界面。
JAVA_MAIN_CLASS=com.mypackage.MyClass
这应该可以解决问题。
我正在尝试使用 openjdk8 source to image 策略在 minishift 中部署一个 maven 项目。该应用程序已构建并部署,但是,它在 运行 时失败并出现以下错误:
Starting the Java application using /opt/run-java/run-java.sh ...
exec java -javaagent:/opt/jolokia/jolokia.jar=config=/opt/jolokia/etc/jolokia.properties -XX:+UseParallelGC -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -XX:MaxMetaspaceSize=100m -XX:+ExitOnOutOfMemoryError -cp . -jar /deployments/app-1.0-SNAPSHOT.jar
no main manifest attribute, in /deployments/app-1.0-SNAPSHOT.jar
我有这个 pom.xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.mypackage.MyClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
我认为在 maven pom 上添加清单条目就足够了。
我必须提供单独的清单文件吗? 我是否必须提供额外的 VM 参数来指定主要 class?如果是这样,我该如何在 openshift 中做到这一点?
还有其他更好的选择吗?
将新环境变量 JAVA_MAIN_CLASS
添加到您的部署配置或通过 Openshift 用户界面。
JAVA_MAIN_CLASS=com.mypackage.MyClass
这应该可以解决问题。