Gra*_*aBa 43 java spring spring-boot
现在我想为我们的系统开发一个通用的邮件服务.在我们设计时,我们希望开发一个RabbitMQ生产者和消费者.在消费者方面,我们可以开发和部署一个Spring Boot或Spring Cloud应用程序,但在生产者方面,我们希望提供一个像下面的接口这样的公共邮件客户端,并为其他系统创建一个jar依赖项.
interface MailClient {
ListentableFuture send(Message message);
}
Run Code Online (Sandbox Code Playgroud)
但我看到使用许多声明方法的spring boot和spring cloud,似乎必须使用应用程序类,但我只想要一个类引用而不需要部署.我不知道如何实现它.
San*_*jay 78
Spring Lemon就是一个很好的例子.它使用Spring Boot,并且包含在其他Spring Boot应用程序中.这就是我们创建它的方法:
spring-boot-maven-plugin,即pom.xml中的build和pluginRepositories部分.(如果没有这些部分,请查看pom.xml的外观).jav*_*301 36
Spring文档准确地解决了这个问题,并展示了使用/ for Spring boot实现公共库的正确方法:
https://spring.io/guides/gs/multi-module/
正如文档所述:虽然没有使用Spring Boot Maven插件,但您确实希望利用Spring Boot依赖项管理.
我有与您类似的需求,到目前为止,我设法构建了一个可用于其他项目的库,配置如下:
`
<modelVersion>4.0.0</modelVersion>
<groupId>mx.grailscoder</groupId>
<artifactId>library</artifactId>
<version>1.0-SNAPSHOT</version>
<name>My Custom Library built on Spring Boot</name>
<description>Spring Boot Project library</description>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<logentries-appender>RELEASE</logentries-appender>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<skip>true</skip>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
`
值得一提的是,我跳过了该repackage任务,因为我的库没有任何主类,因此发出mvn install任务不会失败。
| 归档时间: |
|
| 查看次数: |
45625 次 |
| 最近记录: |