创建一个Spring Boot可执行jar和一个常规库jar

时间:2017-12-08 20:29:52

标签: java spring maven jar

我有一个常规Java项目,它创建一个jar文件,这是一个在webapp中使用的东西库。这是一个创建jar的Spring Boot启动器。简单的东西。

我希望能够将其作为独立的可执行jar文件运行。所以我编写了一个实现CommandLineRunner的标准Application.java,并将其添加到我的插件中:

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

和presto,我的jar是可执行的。

但是,该插件会更改目录结构,使其不再是常规库jar,并且我的webapplication无法在其中找到类。当我删除我的pom中的插件条目时,webapp工作正常,但jar不再可执行。

可以两者兼得吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:1)

可能在Spring Boot 1.4.1之前,但从那以后就没有了。 1.4.1更改了可执行jar中的目录结构。对于1.4.1及之后,jar可以是可执行的,也可以是库,但不能同时使用。

如果你真的需要同一个jar既可执行又是库,那么你需要恢复到Spring Boot 1.4.0或更早版本。