zoukankan      html  css  js  c++  java
  • spring boot maven 打包提示程序包xxx不存在?

    原文地址:https://www.zhihu.com/question/292734760/answer/482329716

    作者:VayCi
    链接:https://www.zhihu.com/question/292734760/answer/482329716
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    为什么会提示程序包不存在呢?

    你的A模块是一个spring boot项目,创建生成的pom的中肯定是这样的build的

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

    emmm...使用了spring boot的build plugin。这时候A模块install到仓库的jar包是什么样子的呢?

    是的,模块A已经按照spring boot的启动机制调整了目录结构,模块B找不到模块A的类了。

     

    临时解决方案

    尝试把模块A的pom中build部分的spring boot plugin去掉

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

    注释掉之后,重新install模块A,再看jar包结构

    这才是一个最普通不过的jar包,这时候再去install模块B,肯定不会报找不到程序包的错了。

     

    更好的解决方案

    假如我的模块A也是要运行的一个应用,那每次都要修改pom打两次包吗?

    并不。再次修改模块A的pom,改为如下配置

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

    install模块A,查看仓库jar包。

    可以看到仓库里生成了两个jar包。

    看jar包大小很容易可以猜到。

    上面是普通的jar包,下面名称带exec的是一个可以直接运行的spring boot的jar包。

    依赖还是那个依赖,要运行就把exec拿出来java -jar!

  • 相关阅读:
    项目中openlayer中使用,完整解决方案(数据库矢量数据,动态更新,分层,编辑)
    openlayer
    关于splitViewController自己的总结....
    GIS底层开发总结
    判断联网 phone
    nsdate 前一天 后一天
    ObjectiveC 字符处理函数 全 substring indexof
    oracle
    Windows Xp上跑IIS5.1x 用户访问过多出错
    Jquery中替换节点的方法replaceWith()和replaceAll()
  • 原文地址:https://www.cnblogs.com/eyesfree/p/14844777.html
Copyright © 2011-2022 走看看