我有一个常规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不再可执行。
可以两者兼得吗?如果是这样,怎么样?
答案 0 :(得分:1)
可能在Spring Boot 1.4.1之前,但从那以后就没有了。 1.4.1更改了可执行jar中的目录结构。对于1.4.1及之后,jar可以是可执行的,也可以是库,但不能同时使用。
如果你真的需要同一个jar既可执行又是库,那么你需要恢复到Spring Boot 1.4.0或更早版本。