java - openshift:jar maven 项目中没有主要 list 属性

标签 java maven openshift manifest minishift

我正在尝试使用 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 上添加 list 条目就足够了。

我必须提供单独的 list 文件吗? 我是否必须提供额外的 VM 参数来指定主类?如果是这样,我该如何在 openshift 中做到这一点?

还有其他更好的选择吗?

最佳答案

将新环境变量 JAVA_MAIN_CLASS 添加到您的部署配置或通过 Openshift 用户界面。

JAVA_MAIN_CLASS=com.mypackage.MyClass

这应该可以解决问题。

关于java - openshift:jar maven 项目中没有主要 list 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57995375/

相关文章:

java - 分布式缓存

java - Maven 资源自定义文件路径

tomcat7 - OpenShift 应用程序卡住

mysql - 使用openshift在mysql数据库上访问被拒绝

openshift - New Relic 需要 Openshift 机器上的 root 访问权限

java - GridBagLayout,在 JButtons 之间添加空间

java - liquibase 中的 SQL 文件从未执行过

java - 运行 Spring XML 时构建失败

rest - 如何从 Nexus 存储库请求 Artifact 的大小?

java - 在 super() 的参数列表中调用静态方法在 Java 中是有效的。为什么?