从 Spring Boot 1.4 应用程序导入 Maven 依赖项
Import maven dependecies from a Spring Boot 1.4 application
在他们更改构建 jar 文件的结构后,我无法将 类 从现有的 Spring-Boot 应用程序导入到我的新应用程序中。
他们更改了 jar 文件,以便应用程序拥有 类 现在位于 BOOT-INF/classes 而不是 jar 文件的根目录。
但是当我对这个 Spring-boot 应用程序有一个正常的 Maven 依赖时,我无法从这个应用程序导入现有的 类 并导入我的新应用程序中的新 类 .
在他们改变结构之前它工作得很好...
此处的解决方案是重构您的代码,以便您在两个应用程序中所依赖的 类 在单独的项目中可用。
现在您可以通过在两个项目中导入依赖项来使用这些 类:
<dependency>
<groupId>org.example</groupId>
<artifactId>example-shared</artifactId>
</dependency>
确保您没有在这个新创建的共享项目中使用 Spring boot maven 插件,并且您可能也不应该使用任何 Spring boot starters,因为它们加载了很多您可能不需要的依赖项。
我发现实际上可以使用 Spring 引导应用程序作为依赖项。即使它很可能不被推荐。但在某些情况下,它只会让事情变得更容易。
此解决方案意味着您无法使用可执行存档。
"The executable archive cannot be used as a dependency as the executable jar format packages application classes in BOOT-INF/classes. This means that they cannot be found when the executable jar is used as a dependency."
我的问题的解决方案是在 spring-boot-maven-plugin 中包含一个配置分类器。对于 Maven,就像这样:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<classifier>exec</classifier>
</configuration>
</plugin>
或像这样 Gradle:
bootRepackage {
classifier = 'exec'
}
在他们更改构建 jar 文件的结构后,我无法将 类 从现有的 Spring-Boot 应用程序导入到我的新应用程序中。
他们更改了 jar 文件,以便应用程序拥有 类 现在位于 BOOT-INF/classes 而不是 jar 文件的根目录。
但是当我对这个 Spring-boot 应用程序有一个正常的 Maven 依赖时,我无法从这个应用程序导入现有的 类 并导入我的新应用程序中的新 类 .
在他们改变结构之前它工作得很好...
此处的解决方案是重构您的代码,以便您在两个应用程序中所依赖的 类 在单独的项目中可用。
现在您可以通过在两个项目中导入依赖项来使用这些 类:
<dependency>
<groupId>org.example</groupId>
<artifactId>example-shared</artifactId>
</dependency>
确保您没有在这个新创建的共享项目中使用 Spring boot maven 插件,并且您可能也不应该使用任何 Spring boot starters,因为它们加载了很多您可能不需要的依赖项。
我发现实际上可以使用 Spring 引导应用程序作为依赖项。即使它很可能不被推荐。但在某些情况下,它只会让事情变得更容易。 此解决方案意味着您无法使用可执行存档。
"The executable archive cannot be used as a dependency as the executable jar format packages application classes in BOOT-INF/classes. This means that they cannot be found when the executable jar is used as a dependency."
我的问题的解决方案是在 spring-boot-maven-plugin 中包含一个配置分类器。对于 Maven,就像这样:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<classifier>exec</classifier>
</configuration>
</plugin>
或像这样 Gradle:
bootRepackage {
classifier = 'exec'
}