Spring Boot 与 POM 打包聚合器

2024-01-16

是否可以使用 Spring Boots Maven 插件命令spring-boot:run当项目的父POM因其子项目而使用打包模式POM时?


我有一个多模块 Maven 项目,其中有一个“主”POM,它又是 Spring Boot 父模块的子模块。看起来像这样:

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>project</artifactId>
    <packaging>pom</packaging>
    <version>0.1.0</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.0.BUILD-SNAPSHOT</version>
        <relativePath/>
    </parent>

    <modules>
        <module>module1</module>
        <module>module2</module>
        <module>module3</module>
    </modules>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <start-class>com.example.module1.Application</start-class>
        <java.version>1.8</java.version>
    </properties>

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

这基本上是我们的“主”POM,每个孩子都将其用作其父级。现在我们想要执行spring-boot:run来自此“主”POM 所在工作目录的命令。问题是,这会生成一个ClassNotFoundException这是奇怪的,因为 module1 (其中这Application类位于)包含在 POM 中并作为模块提及。

使用单模块 Maven 项目和<packaging>jar</packaging>这会编译并运行 Application 类,因此不是 Spring-Boot 在这里不起作用。

我必须更改什么才能使其正常工作,或者根本无法使用spring-boot-maven-plugin处理多模块 Maven 项目时的插件?


旁注:我的应用程序类/模块 1 将其他模块作为依赖项,因此在回答问题时请记住这一点。非常感谢任何有关如何改进这一点的建议。


据我所知,这是不可能的,因为该插件需要一个可执行的 jar 才能运行。

的文档弹簧启动插件 http://docs.spring.io/autorepo/docs/spring-boot/1.2.0.BUILD-SNAPSHOT/maven-plugin/run-mojo.html目标“跑”说:

描述

运行可执行的归档应用程序

打包 pom 不会创建可执行文件。它只会生成一个pom.xml。

尝试运行 mvn install 并查看部署到本地存储库的工件:

我刚刚为我的一个模块做了打包 pom:

[INFO] Installing C:\projects\boot-parent\pom.xml to 
C:\Users\...\repository\no\boot-parent\0.0.1-SNAPSHOT\boot-parent-0.0.1-SNAPSHOT.pom

正如您所看到的,工件是 boot-parent-0.0.1-SNAPSHOT.pom。


尝试将插件配置放入 module1 的 pom 中,该模块具有启动类(主类)并具有打包 jar。

编辑您的评论:

您的评论表明您的客户端 Maven 安装存在问题。看一下这个答案 https://stackoverflow.com/questions/4856307/when-maven-says-resolution-will-not-be-reattempted-until-the-update-interval-of。尤其是@ChristianAchilli 给出的答案。

我通过删除本地存储库中相应的无法下载工件目录来解决此问题。下次我运行 Maven 命令时,会再次触发工件下载。因此我会说这是客户端设置。

再次希望这有帮助!

Thomas

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot 与 POM 打包聚合器 的相关文章

随机推荐

  • 如何更新datagridview中的单元格?

    我有连接到我的数据库 访问 的 datagridview 如果我停留在任何单元格上并更改值 则会看到该值已更改 但是当我进行刷新时 我看到该值又回到了原始值 我如何更新这个单元格 没有sql查询 我将数据集绑定到 datagridview
  • 在 Spring Boot JPA 中,如何正确 POST 其实体表示与不同实体具有外键关联的对象?

    如果我有一个包含另一个类的对象的实体 例如Book其内部有一个实体Publisher关联的实体如下 ManyToOne JoinColumn name PUB CODE referencedColumnName PUB CODE priva
  • 如何反转 Groovy 集合的排序?

    我正在根据多个字段对列表进行排序 sortedList sort it getAuthor it getDate 这工作正常 但我想要逆转日期并且reverse 不起作用 如何按升序对作者排序 但按降序 反向 顺序对日期排序 我想要的示例
  • 如何以干净的方式分叉现有的 Meteorite 包?

    我正在尝试找出在项目中分叉 Atmosphere 上现有包的最佳 最干净的方法 我遇到过一些情况 现有的包需要一些修改 我被迫分叉它 据我所知 存在以下选项 不幸的是 所有这些都有自己的问题 我还没有找到完美的解决方案 我会用meteor
  • 使用水豚测试内容顺序(序列)

    我尝试过使用以下语法 page body index 姓名 但问题是 如果同一页面上有多个具有相同内容的字符串 则无法检查特定字符串的索引 对于前 页面有内容 姓名 和 电话 3次 那么如何验证具体内容的顺序 请建议我们是否可以使用 CSS
  • Chrome 不支持 getUserMedia()

    我正在尝试使用 getUserMedia 使用我自己的网站 使用我自己的 IP 地址运行 来访问我的网络摄像头 它工作正常 直到我再次尝试我的网站 我尝试过其他演示站点 给出的错误是 getUserMedia 不受支持 Chrome版本v4
  • Kafka以相反的顺序消费消息

    我使用Kafka 0 10 我有一个主题logs我的物联网设备将日志发布到其中 我的消息的关键是device id 所以同一设备的所有日志都在同一个分区 我有一个 API devices id tail logs需要显示呼叫时某台设备的最后
  • 在 javascript postmessage 上到本地磁盘上的父级 HTML iframe

    我正在开发一个项目 涉及在 iframe 中托管网页 而托管父 iframe 位于本地磁盘上的 HTML 文件中 例如在 c 而内部托管 iframe 位于某些服务器上 两个网页需要互相发送消息 父 iframe 在本地磁盘上 向内部框架发
  • Log.e 不打印 UnknownHostException 的堆栈跟踪

    Calling Log e TAG some message e where e is an UnknownHostException 不会在 logcat 上打印堆栈跟踪 自2011年5月20日起 Log类 这样UnknownHostEx
  • 如何在ggplot2中通过点绘制45度线

    我有一个对数刻度的散点图 其中垂直和水平参考线穿过 1 1 下面的虚线 我想添加与虚线参考线成 45 度角的额外参考线 以便它们恰好平分虚线参考线创建的四个 部分 例如 下面我刚刚通过眼睛添加的较细实线 我怎样才能用 ggplot 做到这一
  • 使用任何 Android 设计支持库元素时出错

    从设计支持库中扩充任何内容时出错 xml
  • 如何从 Ruby on Rails 解析 json 数据或(json 代码)

    我有一个 Ruby on Rails 源代码 现在我想解析数据并发送数据 在我的代码中 它将从用户获取名称并显示它 如何解析 ROR 中的数据 这是我的controller rb代码 def index hotels Hotel all r
  • shell 文本编辑器如何工作?

    我对编程相当陌生 但我想知道 shell 文本编辑器 如 vim emacs nano 等 如何能够控制命令行窗口 我主要是一名 Windows 程序员 所以也许 nix 上的情况有所不同 据我所知 只能将文本打印到控制台并要求输入 文本编
  • 如何扫描 pandas 数据帧中所有大于某值的值并返回与该值对应的行号和列号?

    我有一个问题 我有如下所示的巨大数据集 相关系数矩阵 A B C D E A 1 0 413454352 0 615350574 0 479720098 0 34261232 B 0 413454352 1 0 568124328 0 31
  • 提交-拉-合并-推还是拉-合并-提交-推?

    我们几周前开始使用 Mercurial 大多数开发人员都遵循以下工作流程 致力于某项功能 commit m 致力于功能 ABC pull u If branch merge 提交 m 合并 push 今天 我们的一位开发人员建议我们这样做
  • Keras ImageDataGenerator 流程方法中的 save_to_dir 遇到问题

    我想保存 ImageDataGenerator 正在创建的增强图像 以便以后使用它们 当我执行以下代码时 它运行正常 但我希望保存的图像没有显示在我尝试保存它们的目录中 gen image ImageDataGenerator rotati
  • Future 任务完成后 Java 进程没有退出

    这是我使用 Future 的代码片段 import java util concurrent import java util public class FutureDemo public FutureDemo Future Executo
  • 更改或删除 App Store 中的开发者名称

    我已经为我的客户创建了一个应用程序 我们已经用我的帐户发布了该应用程序 现在 他们想将开发商名称更改为他们公司的名称 有没有办法更改开发商名称 我可以将我的应用程序移至他们的企业帐户 以便开发者名称更改为他们的企业名称吗 是的 自 WWDC
  • 阅读 Fetch Promise 的正文

    我有以下用于上传到 Google Cloud 存储的快速端点 它工作得很好 来自 google api 的响应给了我一个唯一的文件名 我想将其传回我的前端 app post upload req res gt var form new fo
  • Spring Boot 与 POM 打包聚合器

    是否可以使用 Spring Boots Maven 插件命令spring boot run当项目的父POM因其子项目而使用打包模式POM时 我有一个多模块 Maven 项目 其中有一个 主 POM 它又是 Spring Boot 父模块的子