当前位置: 首页 > 知识库问答 >
问题:

带POM包装搅拌器的Spring靴

翁凯定
2023-03-14

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

我有一个多模块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,每个孩子都用它作为父母。现在我们要从这个“master”POM所在的工作目录中html" target="_blank">执行spring-boot:run命令。问题是,这会生成一个ClassNotFoundException,这是奇怪的,因为module1(这个Application类所在的位置)包含在POM中,并作为一个模块提到。

使用单个模块maven项目和 jar ,这将编译和运行应用程序类,因此Spring-Boot在这里不起作用。

在处理多模块Maven项目时,我必须更改什么才能使其工作,还是根本不可能使用spring-boot-maven-plugin插件?

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

共有1个答案

年光明
2023-03-14

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

spring-boot插件目标“run”的文档中说:

说明

尝试运行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。

您的评论表明您的客户端Maven安装存在问题。看看这个答案。尤其是@ChristianAchilli给出的答案。

我用来解决这个问题,删除相应的失败下载工件目录在我的本地回购。下一次运行maven命令时,工件下载将再次触发。因此,我认为这是一个客户端设置。

再一次,希望这有帮助!

 类似资料:
  • 我面临一些渲染问题。试图建立一个2d平台游戏,我的计划是创建与搅拌机的演员。我是新手,搅拌机和libgdx,不知道错误在哪里。 在《搅拌机》中,演员看起来很好。由libgdx渲染,我只看到奇怪的形式,根本不像我的演员。 -----编辑好,我缩小了问题的范围。在blender中,我创建了一个简单的立方体。在我的libgdx应用程序中,如果只渲染多维数据集而不渲染其他内容,则可以很好地渲染此多维数据集

  • 每当我使用ffmpeg命令时,视频会变大,搜索/关键帧inteval与Blender呈现的视频不一样。我如何转换以下搅拌机设置到ffmpeg请? 搅拌机设置: 帧速率:30 编解码器:H.264 输出。mp4 关键帧间隔:1 输出质量:中等 编码速度:良好 下面是我当前的命令,但是查找和文件大小不同:

  • 问题内容: 我得到了一个maven项目来编译并部署在tomcat服务器上。今天以前我从未使用过Maven,但是我已经使用了很多Google搜索功能。似乎此项目中的顶级文件的打包类型设置为。 部署此应用程序后我应该怎么做?我原本希望能够在某处或某处找到文件,但是我想我在错误的位置查找或缺少一步。 问题答案: 基本上是子模块的容器,每个子模块由与包装相同目录中的子目录表示。 嵌套在项目结构中的某个地方

  • 对于这个库,我在以下几点上感到困惑: 1)我是否应该使用Spring data redis(它也支持lettuce)?如果我的目标是创建库,那么首先,我可以使用Spring data redis吗? 2)Spring data redis会给我什么好处。我已经查看了文档https://docs.Spring.io/spring-data/data-redis/docs/current/refere

  • 我读了很多关于如何在spring boot项目中使用spring-boot-starter-parent的帖子。基本上,我读过一些帖子(Spring文档也讨论了这一点),这些帖子描述了两种实现这一点的方法 直接使用spring-boot-starter-parent作为项目父级。它给我们带来了依赖管理和插件管理的好处。 另一种方法是在项目pom中导入spring-boot-starter父级(如果

  • 是否有一个具体的推荐方法将spring启动的父pom包含到已经有一个必需的父pom的项目中? 对于需要从组织父级扩展的项目,您有什么建议(这是非常常见的,甚至是许多/大多数项目发布到Maven central,这取决于它们来自的feeder Repo)。大部分构建内容都与创建可执行JAR相关(例如,运行嵌入式Tomcat/Jetty)。有一些方法可以对事物进行结构化,这样您就可以获得所有的依赖关系