所以我试图在另一个项目(测试框架)中添加一个spring boot可执行jar作为依赖项。
然而,一旦添加到pom并导入。 Java导入无法正常工作。如果我在罐子里面查看所有包装的前缀是:
BOOT-INF / classes.some.package.classname.class
还有一些与春季启动相关的包,MANIFEST等等。
如果我将spring boot app的构建切换为使用spring-boot-maven-plugin安装和部署常规jar,那就不行了
这种变化,一切正常。不幸的是,这不是我们的解决方案,因为我们依靠可执行jar作为发布过程的一部分。
我可以构建一个部署jar的两个版本并使用分类器来确定每个版本吗?
由于
答案 0 :(得分:14)
事实证明,使用spring-boot-maven-plugin可以实现这个确切的场景。
Spring boot app的pom:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.1.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
...
</plugin>
使用spring boot jar的项目可以正常添加:
<dependency>
<groupId>com.springboot</groupId>
<artifactId>app</artifactId>
<version>1.0.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
如果你想引用可执行的jar
<dependency>
<groupId>com.springboot</groupId>
<artifactId>app</artifactId>
<version>1.0.0-SNAPSHOT</version>
<scope>test</scope>
<classifier>exec</classifier>
</dependency>