云效部署单机 提示 no main manifest attribute,in xxx.jar是为什么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到提示 "no main manifest attribute, in xxx.jar" 错误,意味着您尝试运行的 JAR 文件缺少必要的 Main-Class 属性,该属性指定了 JAR 文件的入口点。要解决此问题,请按照以下步骤操作:
MANIFEST.MF文件中的Main-Class属性。这个属性值应指向包含public static void main(String[] args)方法的类,它是Java应用程序的启动入口。 jar命令或构建工具(如Maven、Gradle)重新打包JAR文件,并确保在打包时指定Main-Class。例如,使用Maven时,在pom.xml中添加如下配置: xml org.apache.maven.plugins maven-jar-plugin 3.2.0 com.yourcompany.YourMainClass 替换com.yourcompany.YourMainClass为实际的主类全名。 3. 云效部署调整: 若您通过云效流水线部署此应用,请确保在部署脚本(如deploy.sh)中正确调用了包含正确Main-Class设置的JAR文件。 按照上述步骤操作后,重新部署应用,该错误应被解决。这将确保云效能够成功识别并启动您的Java应用程序。
出现“no main manifest attribute, in xxx.jar”的错误通常意味着JAR文件中缺少了指定主类的清单(MANIFEST.MF)属性。
确保pom.xml文件中包含了正确的打包配置
<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>
确保spring-boot-maven-plugin的executions配置中包含了repackage和build-info目标:
<executions>
  <execution>
    <goals>
      <goal>repackage</goal>
      <goal>build-info</goal>
    </goals>
  </execution>
</executions>