Java 从cmd构建jar并运行springboot
我是springboot新手,使用springboot 2版本 我想从命令提示符下使用java-jar my-app-0.0.1-SNAPSHOT.jar运行spring启动应用程序 但是,当我使用eclipse构建应用程序时,它直接调用myService.getMyMethod(),而不构建jar 我想先构建jar文件,然后从调用myService.getMyMethod()的命令提示符运行java-jar my-app-0.0.1-SNAPSHOT.jarJava 从cmd构建jar并运行springboot,java,spring-boot,pom.xml,spring-websocket,spring-boot-maven-plugin,Java,Spring Boot,Pom.xml,Spring Websocket,Spring Boot Maven Plugin,我是springboot新手,使用springboot 2版本 我想从命令提示符下使用java-jar my-app-0.0.1-SNAPSHOT.jar运行spring启动应用程序 但是,当我使用eclipse构建应用程序时,它直接调用myService.getMyMethod(),而不构建jar 我想先构建jar文件,然后从调用myService.getMyMethod()的命令提示符运行java-jar my-app-0.0.1-SNAPSHOT.jar 我已经在pom.xml中安装了sp
我已经在pom.xml中安装了spring boot maven插件,运行mvn package/mvn install启动应用程序,但不在目标文件夹中生成jar文件。mvn clean包也不工作,MyApplication正在使用implements CommandLineRunner并开始在构建时调用该方法,因此不会生成构建jar文件 我的主要班级:
@SpringBootApplication
public class MyApplication implements CommandLineRunner {
private static String URL = "ws://localhost:8080/spring-mvc-java/chat";
@Autowired
private MyService myService;
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
myService.getMyMethod(URL);
}
}
我的服务级别:
@Service
public class MyServiceImpl implements MyService {
public void getMyMethod(String URL){
WebSocketClient client = new StandardWebSocketClient();
WebSocketStompClient stompClient = new WebSocketStompClient(client);
stompClient.setMessageConverter(new MappingJackson2MessageConverter());
StompSessionHandler sessionHandler = new MyStompSessionHandler();
stompClient.connect(URL, sessionHandler);
new Scanner(System.in).nextLine(); // Don't close immediately.
}
}
为了使用
java-jar
运行jar,您应该使用springbootmaven插件
:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.0.RELEASE</version>
</plugin>
</plugins>
</build>
org.springframework.boot
springbootmaven插件
2.3.0.1发布
这个插件将把项目的所有依赖项“烘焙”到JAR中,并添加一些“技术”代码,允许使用java-JAR
运行这个JAR(确切的细节有点超出了这个问题的范围)
如果将其添加到构建中,并运行mvn package/mvn install
,它将在target
文件夹中的原始JAR旁边创建一个大JAR(将使用后缀.original
重命名)
您可以使用WinRAR/WinZIP打开它,并确保所有类都在那里,所有依赖项都在BOOT-INF/lib
文件夹中
然后您可以使用
java-jar
运行项目,为了使用java-jar
运行jar,您应该使用spring-boot-maven-plugin
:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.0.RELEASE</version>
</plugin>
</plugins>
</build>
org.springframework.boot
springbootmaven插件
2.3.0.1发布
这个插件将把项目的所有依赖项“烘焙”到JAR中,并添加一些“技术”代码,允许使用java-JAR
运行这个JAR(确切的细节有点超出了这个问题的范围)
如果将其添加到构建中,并运行mvn package/mvn install
,它将在target
文件夹中的原始JAR旁边创建一个大JAR(将使用后缀.original
重命名)
您可以使用WinRAR/WinZIP打开它,并确保所有类都在那里,所有依赖项都在BOOT-INF/lib
文件夹中
然后您可以使用java-jar
pom.xml
中添加标签jar
mvn-package
或maven-install
构建maven项目。它将在target
文件夹中创建.jar
文件
.jar
的位置运行命令-java-jarjarname.jar
系统
pom.xml
中添加标签jar
mvn-package
或maven-install
构建maven项目。它将在target
文件夹中创建.jar
文件
.jar
的位置运行命令-java-jarjarname.jar
现在您可以访问您的
系统了
您是否将spring boot maven插件
添加到pom.xml
以创建正确的jar?是的。更新了postifmvn包
不会生成jar,但启动应用程序时,您可能有一个测试阻止了该过程。@M.Deinum请查找更新的代码,您的服务正在阻止,因此阻止了测试的完成,因此maven无法生成jar。您是否将spring boot maven插件
添加到pom.xml
以创建正确的jar?是的。更新了postifmvn包
不会生成jar,但启动应用程序时,您可能有一个测试阻止了该过程。@M.Deinum请查找更新的代码,您的服务正在阻止,因此阻止了测试的完成,因此maven无法生成jar。更新了my post.runmvn clean package
-默认情况下,“重新打包”目标绑定到maven()中的“打包”阶段mvn clean package也不工作,我的主要类是使用implements CommandLineRunner,并开始调用buildtry上的方法,从中生成相同的项目,并查看与pom的差异……我在pom.xml中有spring boot maven插件,但没有生成jar。更新了my post.runmvn clean package
-默认情况下,“重新打包”目标绑定到maven()中的“打包”阶段mvn clean package也不起作用,我的主要类正在使用implements CommandLineRunner并开始调用buildtry上的方法从中生成相同的项目,并查看与pom的差异。。。