【问题标题】:Running spring boot with multiple main classes使用多个主类运行 spring boot
【发布时间】:2020-01-17 10:34:36
【问题描述】:

目前在我们的应用程序中,我们有多个主类,并分别使用以下命令单独执行它们。

java -Xmx1024M -cp /path/to/jar/MyApp.jar com.....MyAppMain1

java -Xmx1024M -cp /path/to/jar/MyApp.jar com.....MyAppMain2

java -Xmx1024M -cp /path/to/jar/MyApp.jar com.....MyAppMain3

现在尝试使用弹簧靴。我们要怎么做才能达到同样的效果?

在pom.xml中有

…….
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
    </parent>

……..

使用spring boot并执行命令

java -Xmx1024M -cp /path/to/jar/MyApp.jar com.....MyAppMain1

得到错误为 [错误] 无法在项目 MyApp 上执行目标 org.codehaus.mojo:exec-maven-plugin:1.6.0:java (default-cli):目标 org.codehaus.mojo:exec-maven- 的参数“mainClass” plugin:1.6.0:java 丢失或无效

【问题讨论】:

  • 你试过mvn clean install 吗?看起来包装错误,请尝试并告诉我们。;
  • 是的,试过了。进行 Maven 全新安装并没有帮助。仔细查看它正在使用 exec-maven-plugin 的父 pom,并且期望启动类 mainClass>${start-class}。我不知道如何通过我们拥有的不同程序的这个入门课程。

标签: spring-boot


【解决方案1】:

Spring Boot 提供了几种方式:

  • 将主类指定为系统属性:
java -cp app.jar -Dloader.main=com.company.MyAppMain1 org.springframework.boot.loader.PropertiesLauncher
  • 在 Maven pom.xml &lt;properties&gt; 部分配置主类:
<properties>
  <start-class>com.company.MyAppMain1</start-class>
</properties>

请注意,只有当您在 pom.xml 中使用 spring-boot-starter-parent 作为 &lt;parent&gt; 时,才会评估此属性。

  • spring-boot-maven-plugin配置主类:
<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>             
      <configuration>    
        <mainClass>${start-class}</mainClass>
      </configuration>
    </plugin>
  </plugins>
</build>

注意:插件配置可以在 Maven 配置文件中进行,因此通过激活不同的配置文件,您将运行具有不同主类的应用程序。

【讨论】:

  • 感谢您的回复。是否必须按如下方式提供属性而无需对主要权限进行硬编码 ${loader.main} 另外,如何在 Eclipse 中运行该程序?主类作为 vm 参数传递。不知道如何在eclipse中运行程序
  • &lt;properties&gt; 方法仅在您从 spring-boot-starter-parent 继承时才有效。如果您确实从 Spring 的父级继承,则只需将 loader.main 的值设置为参数。有多个参考how to run Maven on eclipse。我建议按照说明进行操作,例如:选择 pom.xml > Run As > clean verify > Add parameter 等
猜你喜欢
  • 2021-03-06
  • 2016-01-27
  • 2017-05-26
  • 2021-05-27
  • 2018-10-26
  • 2019-05-31
  • 2021-11-16
  • 2019-03-19
  • 1970-01-01
相关资源
最近更新 更多