如何使用spring boot制作一个通用的库

现在我想为我们的系统开发一个通用的邮件服务。 在我们设计时,我们希望开发一个RabbitMQ生产者和消费者。 在消费者方面,我们可以开发和部署Spring BootSpring Cloud应用程序,但在生产者方面,我们希望提供一个像下面的接口这样的公共邮件客户端,并为其他系统创建一个jar依赖项。

 interface MailClient { ListentableFuture send(Message message); } 

但我看到使用许多声明方法的spring boot和spring cloud,似乎必须使用应用程序类,但我只想要一个类引用而不需要部署。 我不知道如何实现它。

根据文件 :

Spring Boot可以轻松创建独立的, 生产级的基于Spring的应用程序 ,您可以“运行”。

但Spring Boot并不是适合所有情况的银弹。 如果要创建库,可以创建一个常规的spring项目来构建jar并将其存储在公司的存储库中(如果有的话)。

Spring Lemon就是一个很好的例子。 它使用Spring Boot,并且应该包含在其他Spring Boot应用程序中。 这就是我们创建它的方法:

  1. 使用STSSpring Boot Starter向导创建了一个Spring Boot应用程序。
  2. 删除了生成的应用程序和测试类。
  3. 删除了spring-boot-maven-plugin ,即pom.xml中的buildpluginRepositories部分。 (如果没有这些部分,请查看pom.xml的外观)。

Spring文档准确地解决了这个问题,并展示了使用/ for Spring boot实现公共库的正确方法:

https://spring.io/guides/gs/multi-module/

正如文档所述: 尽管没有使用Spring Boot Maven插件,但您确实希望利用Spring Boot依赖关系管理

我有类似的需求,到目前为止,我设法构建了一个可用于其他项目的库,具有以下配置:

`

 4.0.0 mx.grailscoder library 1.0-SNAPSHOT My Custom Library built on Spring Boot Spring Boot Project library jar  org.springframework.boot spring-boot-starter-parent 1.5.4.RELEASE    org.springframework.boot spring-boot-starter-test test   org.springframework spring-test ${spring.version} test    1.8 UTF-8 UTF-8 RELEASE     org.springframework.boot spring-boot-maven-plugin    repackage   true       

`

重要的是要提到我跳过repackage任务,因为我的库没有任何主类,然后发出mvn install任务不会失败。