问题标签 [spring-boot-maven-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
192 浏览

spring-boot - spring-boot:run 不加载配置文件

Spring Boot Maven 插件缺少配置文件示例

在重新打包目标正确加载配置文件时:

mvn spring-boot:repackage -Dspring.profiles.active=stage

运行目标不会以这种方式加载配置文件:

mvn spring-boot:run -Dspring.profiles.active=stage

0 投票
1 回答
2033 浏览

spring-boot - spring 工具套件:升级到 spring boot 1.4.0 后缺少依赖项

我已将 Spring Boot 版本从 1.3.2 升级到 1.4.0,以便能够在单元测试中使用 @MockBean 注释来模拟我的 bean,但是由于我的项目中仍然存在“导入无法解析为类型编译”错误,但是我已经从 eclipse 更新了 maven 项目依赖项,并从文件系统中删除了存储库文件夹,并允许 maven 重新下载它但徒劳无功。

顺便说一句,我可以从命令行 maven 命令“mvn clean install”清理和安装项目。

请问有什么想法吗?


编辑

我已将 Spring Cloud 依赖版本从 Brixton.BUILD-SNAPSHOT 更改为 Brixton.SR5,这解决了云导入和 @EnableDiscoveryClient 注释的问题,但我仍然遇到依赖问题

我有以下错误

错误消息似乎表明这是一个超时问题,但是所有其他 jar 和依赖项都已下载,我的互联网连接非常好,并且我已经设法从 maven 命令行构建而没有编译错误。

0 投票
0 回答
540 浏览

java - spring boot 运行未从父/聚合器模块加载静态资源

我已经为以下问题苦苦挣扎了大约一周,但我找不到任何有同样问题的人。

我有一个 Maven 项目,它由几个子模块组成,如下所示:

在 B 和 C 的集成测试中,我使用 spring-boot-maven-plugin 在集成测试之前运行 WAR 并在集成测试之后停止。

我可以毫无问题地导航到任何子模块并执行“mvn verify”。但是,如果我在父模块中并执行“mvn verify”,则子 A 和 B 将通过,但子 C 将失败,因为找不到静态内容和 JSP 页面。

我认为问题是由于Maven将从父模块而不是子模块运行应用程序,因此tomcat由于某种原因无法找到资源和WEB-INF文件夹。

例如,父项目中的以下命令:

将启动子 C,但应用程序不会找到静态资源。但是来自子 C 模块的以下命令可以正常工作:

此外,为了检查我在自己的项目依赖项中没有做任何可疑的事情,我下载了spring boot tomcat jsp 示例并创建了一个父 POM,如下所示:

我刚刚修改了 spring boot 示例 pom 的父级,如下所示:

现在,如果我从父模块执行以下操作

并在我们的浏览器中打开http://localhost:8080我得到:

因此,似乎 spring-boot:run 在父模块中不起作用。有没有人有解决这个问题的方法。是否可以在启动 WAR/JAR 之前指示 Maven 或 spring boot 插件导航到子模块?

需要注意的是,我最近将我的“标准”spring MVC 项目移植到了 spring boot。在 spring boot 之前,我使用了 tomcat maven 插件而不是 spring boot 插件,并且那个插件工作得很好。

0 投票
1 回答
537 浏览

spring-boot - rpm 的外部化配置

介绍:

这个问题与如何使用 Spring Boot 将目录首先放在类路径上非常相似?我已经搜索了一下,但不幸的是到目前为止没有任何效果。既没有更改为packaging=ZIPin the ,spring-boot-maven-plugin也没有loader.path按照boot features external confighow to - properties and configuration中的说明使用,所以我一定遗漏了一些东西。还有一件事,如果可能的话,我想避免将每个配置文件作为参数传递给file://....


我有一个应用程序,它最初是几种服务类型的模拟器:sftp、soap 等。最初它支持通过属性文件配置的每种服务器类型的 1 个实例。

我现在已经更新它以支持不同端口上的多个服务器实例,并且配置是在 YAML 文件中完成的,而且我还从经典 spring 迁移到 boot。最后,应用程序作为 RPM 交付,其结构如下

之前,simulators.sh启动主类,将config目录添加到类路径中,spring 会加载属性文件而没有任何问题:

自迁移以来,它现在启动生成的 jar,因此-cp不再使用,并且我无法让它获取配置文件:

忽略它没有找到的事实,aplication.properties模拟器的配置如下加载:

由于配置应该是可更新的,无需重新打包应用程序,所有文件都从生成的 jar 中排除,但打包在 rpm 下config

非常感谢任何帮助或提示。

0 投票
3 回答
700 浏览

spring-boot - spring-boot-maven-plugin >= 1.4.0 jar 结构更改

spring-boot-maven-plugin我有一个 spring-boot 项目,其中所有集成测试都在单独的模块中,该模块在该阶段启动应用程序模块integration-test并针对它执行套件。在升级到 1.4.0.RELEASE 之前,此构造运行良好。现在我得到一个ClassNotFoundException.

在我检查了“1.4.0”jar 结构后,我发现它与“1.3.6”不同,所有包都不再位于顶层,而是在 BOOT-INF 等文件夹中(见下面的屏幕截图)和类加载器无法再找到“mainClass”中定义的包。

有人对修复它有什么想法吗?这个解决方案在新版本中是否可行?

jar 结构 < 1.4.0

在此处输入图像描述

jar 结构 >= 1.4.0

在此处输入图像描述

测试模块:

应用模块:

0 投票
1 回答
773 浏览

spring-boot - 使用开发配置文件而不是产品的 JHipster 可执行 WAR

我使用mvnw -Pprod package. 根据 JHipster 网站:

请注意,此 WAR 文件使用我们在构建时选择的配置文件。由于它是使用上一节中的 prod 文件构建的,因此它将使用 prod 配置文件运行。

并且:

当您从 WAR 文件运行生产应用程序时,默认使用与打包期间使用的配置文件相同的配置文件。如果您想覆盖它,您可以在 VM 参数中显式提供替代方案

但是,当我在没有 WAR 的情况下运行 WAR 时--spring.profiles.active=prod,它会在dev配置文件下运行。是什么赋予了?

0 投票
1 回答
3538 浏览

maven - Spring Boot多模块Maven项目部署

我们有包含以下模块的多模块 Maven 项目:

  • 公地
  • 模型
  • 存储库
  • 服务
  • 网络

我们搜索了一下,没有找到解决方案,当项目具有这种结构时,如何制作一个可执行的 jar。

这是父 pom.xml:

所以,非常基本的父 pom.xml。我们知道打包为 pom 时不能使用 Spring Boot Maven 插件,所以我们在 web 模块的 pom.xml 中定义了它:

其他模块的 pom.xml 的其余部分几乎相同:Service 的 pom.xml 包含 Repository.jar,Repository 包含 Model 和 Common。

问题1:当我们运行时mvn install,插件在web模块的目标文件夹中创建了fat jar。但是当我们尝试运行它时,java -jar name-of-jar它会给出关于 Service 模块中某个类的 java.lang.NoClassDefFoundError - 您可以从 Web 的 pom.xml 中看到包含 Service 模块(Web 中还有一个 Service.jar 打包为库。罐)

问题2:有趣的是Web.jar 中的Service.jar 还包含Web.jar 中已经存在的几乎所有依赖项——基本上它们是重复的。

有没有人设法使用 Spring Boot Maven 插件和 Maven 模块项目结构创建可执行的 fat jar?

0 投票
3 回答
2070 浏览

spring-boot - Spring boot + Activiti explorer

Is it possible to integrate activiti explorer maven plugin with activiti Spring boot app?, so that we can make use of activit-explorer to view deployed process in activit-spring boot engine.

I know we can use rest-api over spring boot to query process engine, but I want to know if it is possible to run the explorer over spring boot by adding it as a maven plugin during deployment?Or can we tweak the activit-explorer.war somehow to point to spring-boot activiti engine?

0 投票
1 回答
1554 浏览

maven - 在使用 spring-boot-maven-plugin 创建的嵌套可执行 jar 中启动主类

我有一个像这样的简单 Spring Boot 类:

Foo.java 和 Bar.java 文件是作为依赖嵌套在当前 jar 文件中的 Main 类文件,并且还使用 @SpringBootApplication 进行了注释。jar 文件结构如下图所示。

虽然当我尝试启动 Starter.java 时,这在 Eclipse 中运行良好,但是在尝试使用 maven 构建项目时,我遇到了异常:

这是 Starter POM 文件的摘录:

项目结构是这样的:

我有一个聚合器 POM 作为父项目,它也将父项目声明为 spring-boot-starter。Foo、Bar 和 Starter 项目都是父项目的子项目。

我想用 spring-boot-maven-plugin 嵌套所有依赖项制作一个胖 jar。这样我就可以根据传递的参数从启动器主类启动我想要的任何项目。弹簧靴可以吗?我也尝试使用类加载器调用 Foo 和 Bar 中的主要方法,但这种方法不起作用。可能我做错了什么,因为我是类加载的新手。

有人可以建议用哪种方法来实现这一目标吗?任何想法都非常感谢。

0 投票
1 回答
1042 浏览

spring-boot - 具有 Spring-Boot 和发布管理的微服务

寻找有关如何对使用 Spring Boot 构建的微服务进行发布管理的建议。

我工作过的大多数项目都使用发布插件(maven)来创建标签以及发布 maven 项目(jar、war、rpm)。通常,这依赖于发布过程中所有子项目(jar、wars)的 maven 父/子关系(单体源代码,都位于单个 git 存储库中)。我想知道人们如何维护不同的启动项目(微服务)并发布。

在我看来,以下是可能的策略:

  1. 每个 git 存储库一个 Spring Boot 项目(微服务 maven 项目),以便独立管理发布。
  2. 一个多模块 maven 项目,每个模块都是一个微服务。所有子模块(微服务)必须一起发布。父 pom 必须使用 Boot 的父 pom。
  3. 依靠 maven-release-plugin 的能力,只发布基于发布的某些子模块。这将使每个 maven 子模块(可能)具有不同的版本。

您的团队发现什么有用?我喜欢 Boot 的编程模型,但我希望我可以使用与 Boot 模型保持简单的发布策略一致。