项目中使用maven的时候Install和package会出现error错误的解决以及jar包启动报404错误

项目中在使用Maven的Install和Package时遇到错误,原因是存在多个主类。解决方法是删除多余主类,保留Spring Boot启动类。此外,当jar包启动报404错误时,需在pom.xml中指定静态资源路径,确保资源文件被正确处理。完成上述步骤后,jar包即可在本地和远程服务器正常运行。

项目中使用maven的时候Install和package会出现error错误的解决以及jar包启动报404错误
首先我们看一下我项目的目录结构,这里我使用的是springboot,所以在pom文件里只要加入这个插件坐标就可以实现了

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

在这里插入图片描述
但是由于我在这个com.ning下的这个包新建了两个带有main方法的测试类,上图进行了标注,现在maven在install和package的时候就会出现如下错误,为了方便大家看,我把主要的错误截图,跟我的目录结构是一样,这里是说找不到主类是谁在这里插入图片描述

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.1.11.RELEASE:repackage (repackage) on project ssh-file: Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:2.1.11.RELEASE:repackage failed: Unable to find a single main class from the following candidates [com.ning.App, com.ning.SshTest, com.ning.test] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

现在看target目录下是可以出现了一个对应的jar包,如下图,此时项目是可以正常运行的,但是这个jar包是不能正常运行的
在这里插入图片描述
我们看一下本地运行这个jar包的时候会出现什么错误,我们打开idea的Terminal窗口,就会进入到项目所在的盘符的位置
在这里插入图片描述
然后我们输入java -jar xxxxx 这里就把刚刚生成的jar的名字复制过来就可以了,如果这个时候你发现你的maven在clean的时候都会进行报错,那么是因为你的maven仓库里面已经存在了下载的错误的jar包依赖,去找到你对应的maven下的repository,我的在c盘下的.m2文件下
在这里插入图片描述
这里就是我项目com目录下所需要的依赖,然后直接删除就可以了,之后去重新用maven clean一下在启动项目 就可以拿到多个主类存在所引起的错误的jar包了,这就是由于存在多个主类所引起错误(idea版版本过低的时候需要加载比较慢,如果出现依赖不起作用,建议把依赖坐标重新导入一下就可以了)
在这里插入图片描述
我的解决办法是去项目所在的文件下下删除不需要的测试类,只留下springboot的启动类app
在这里插入图片描述
我这里所有的静态html文件都在webapp目录下(jsp也是一样的),这个时候的jar包依然没有办法运行我们需要在pom文件里面的build加入下面的资源文件的访问路径,如果不加jar包运行的时候是找不到页面的,此时会报404错误
在这里插入图片描述
所有的静态资源文件都放在了webapp下面,需要指定resources插件处理哪个目录下的资源文件加入下面的资源访问路径即可

 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <resources>
            <!-- 打包时将jsp文件拷贝到META-INF目录下 -->
            <resource>
                <!-- 指定resources插件处理哪个目录下的资源文件 -->
                <directory>src/main/webapp</directory>
                <!--注意此次必须要放在此目录下才能被访问到 -->
                <targetPath>META-INF/resources</targetPath>
                <includes>
                    <include>**/**</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <!-- 指定resources插件处理哪个目录下的资源文件 -->
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/**</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>

    </build>

本地jar包测试
在这里插入图片描述
本地浏览器访问
在这里插入图片描述

这样再次打成的jar包不管是在本地还是在远程服务器上面就都没有错误了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值