Sen*_*tar 10 java pom.xml spring-boot spring-websocket spring-boot-maven-plugin
我是 springboot 的新手,使用的是 springboot 2 版本。
我想在命令提示符下使用java -jar my-app-0.0.1-SNAPSHOT.jar运行我的 spring boot 应用程序。
但是,当我使用 eclipse 构建应用程序时,它直接调用 myService.getMyMethod() 并且不构建 jar。
我想先构建 jar 文件,然后从命令提示符运行java -jar my-app-0.0.1-SNAPSHOT.jar ,这将调用 myService.getMyMethod()
我已经在 pom.xml 中有 spring-boot-maven-plugin,运行mvn package / mvn install启动应用程序,但不会在目标文件夹中生成 jar 文件。mvn clean package 也不起作用,MyApplication 正在使用实现 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);
}
}
Run Code Online (Sandbox Code Playgroud)
我的服务等级:
@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.
}
}
Run Code Online (Sandbox Code Playgroud)
为了运行 jar,java -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>
Run Code Online (Sandbox Code Playgroud)
该插件会将项目的所有依赖项“烘焙”到 JAR 中,并添加一些“技术”代码,以允许运行此 JAR java -jar(确切的细节超出了这个问题的范围)
如果将其添加到构建中并运行mvn package / mvn install它将在文件夹中的原始 jar 旁边创建target一个大 JAR(将使用后缀重命名.original)。
您可以使用 WinRAR/WinZIP 打开它,并确保所有类都在那里并且所有依赖项都在BOOT-INF/lib文件夹中。
然后你可以运行该项目java -jar
| 归档时间: |
|
| 查看次数: |
62172 次 |
| 最近记录: |