【问题标题】:How to deploy spring-boot application to nexus without include all the spring-boot libraries?如何在不包含所有 spring-boot 库的情况下将 spring-boot 应用程序部署到 nexus?
【发布时间】:2017-03-13 20:55:04
【问题描述】:

我正在寻找一种将 spring-boot 应用程序部署为 nexus(我们公司的 maven 存储库)中的人工制品的能力。该应用程序本身运行良好,我不想将其重构为标准 Spring 应用程序。

问题如下。通过执行~> maven deploymaven 很好地部署了target/transformation.excel.input-XXX.RELEASE.jar 存档。但是:

  1. 部署jar很重量级
  2. jar 包含BOOT-INF/classes/com/ ... 文件夹中的项目类。你可以在这里看到它:

从终端启动这个引导应用程序肯定很好,但在我的情况下它是不可接受的。

最重要的是

  1. 由于jar-archive 的实际结构,第三个项目(依赖于此transformation.input.excel-artefact)看不到源类,编译器显示错误。

我相信有一些机会可以让 nexus(maven)-repository 的 spring-boot 工件更舒适。也许可能有一个 jar-plugin 解决方案,但我没有任何经验。

我会非常感谢协助/帮助如何解决它。因此,有时我必须从终端运行此应用程序,有时该应用程序可以用作功能提供者

对不起我的英语

问候

【问题讨论】:

  • 所以在某种程度上,你的问题并不是关于关系,而是如何将 spring boot 的 jar 拆分为 "YourApp-withoutspringbootlibs.jar" + "springbootlibraries.jar" ?然后,您只需部署 YourApp-withoutspringbootlibs.jar ?
  • 实际上你是对的。是的,我需要没有 spring-boot 库的带有源代码的 jar。通过执行mnv包,maven在目标文件夹中创建了两个文件。第一个是真正的 spring-boot jar,具有所有依赖项,并且由于结构原因,我的源无法访问。第二个是 XXX.jar.original,只包含源代码,没有任何依赖。
  • 我想要第二个,但我不知道如何强制 maven 自己找到依赖项。我刚刚对其进行了测试,编译器很高兴。但是通过运行应用程序存在运行时异常。有人认为:“找不到第三方库”
  • 在这种情况下有一个问题,我无法直接执行 [mvn deploy]。我必须删除第一个 jar 文件,然后重命名第二个文件(xxxx.jar.original -> xxx.jar),然后手动部署。最后,通过这种方式部署编译器很高兴,但没有任何依赖关系 l 通过执行应用程序接收异常。
  • 您同时混合了 2 个问题。我建议您将您的问题改写为“Spring Boot:如何在单独的 jar 中使用 spring-libraries 构建可运行的 jar”。在你完成这项工作之前,你应该把 nexus 放在一边。一旦你有 2 个工作 jar,那么你可以找到在 nexus 中部署它们的最佳方法。

标签: spring maven spring-boot jar nexus


【解决方案1】:

解决办法在这里:

		 		<plugins>

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-16
    • 2019-05-01
    • 2017-06-24
    • 2021-11-15
    • 2018-03-16
    • 2018-05-15
    • 2021-07-25
    • 2017-09-30
    相关资源
    最近更新 更多