Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建一个springboot可执行jar和一个常规的库jar_Java_Spring_Maven_Jar - Fatal编程技术网

Java 创建一个springboot可执行jar和一个常规的库jar

Java 创建一个springboot可执行jar和一个常规的库jar,java,spring,maven,jar,Java,Spring,Maven,Jar,我有一个常规的Java项目,它创建了一个jar文件,这是一个Web应用程序中使用的东西库。它是一个创建jar的Spring启动程序。简单的东西 我希望能够将其作为一个独立的可执行jar文件运行。因此,我编写了一个实现CommandLineRunner的标准Application.java,并将其添加到我的插件中: <plugin> <groupId>org.springframework.boot</groupId> <artifactI

我有一个常规的Java项目,它创建了一个jar文件,这是一个Web应用程序中使用的东西库。它是一个创建jar的Spring启动程序。简单的东西

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

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

org.springframework.boot
springbootmaven插件
还有,我的jar是可执行的

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


两者都可以吗?如果是这样的话,怎么做?

在Spring Boot 1.4.1之前是可能的,但从那以后就不可能了。1.4.1更改了可执行jar中的目录结构。对于1.4.1及之后的版本,jar可以是可执行的,也可以是库,但不能两者兼而有之


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

正确的方法是将普通的东西移动到单独的maven项目中,并在Spring Boot和你的web应用程序中引用它。或者,您可以使用maven组装插件生成第二个jar工件。