报错no main manifest attribute, in app.jar

中文是:在app.jar中没有主清单属性

背景:单独package module的app.jar,使用java -jar app.jap,报错no main manifest attribute, in app.jar。
在父pom中加入一下内容

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <mainClass>com.example.demo.Demo1Application</mainClass>   // 根据自己的启动类进行修改,必须要有这个<mainClass>,不然打包会出错
                    <layout>JAR</layout>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

两种情况

不使用module管理的项目

这种情况下就一个pom.xml,按照上面的配置就可以了。

使用module管理的项目

除了父级pom.xml 文件,每一个module中都有一个pom.xml文件。

  1. 首先在父项目中加入上面的配置。
  2. 在每个module的pom中加入
    <build>

        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <mainClass>com.zhq.AppApplication</mainClass> // 改为自己的
                </configuration>
            </plugin>
        </plugins>

    </build>

说明:module中的pom会继承父pom中的中的。
总之,module模块的打包会受到父pom的影响,如果父pom配置不对,单独package某个module都会失败。要确保父pom和子module都正确。

多说一点

在多module管理的项目中如果,A module 引用了B module,在A进行package的时候,可能会报错无法找到B中的内容。这种情况需要再B module 的pom中加上配置<classifier>exec</classifier>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <classifier>exec</classifier>   // 加上这个exec配置
                </configuration>
            </plugin>

更详细的内容,在这篇大佬博客中有分析
https://blog.csdn.net/agonie201218/article/details/110958570

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值