启动Spring Boot&使用maven个人资料拨打电话

时间:2017-07-20 09:05:56

标签: maven spring-boot

我有一个现有的应用程序,它是一个用Java编写并使用maven管理的jetty应用程序。可以从浏览器运行一些基本任务,但主要是从命令行(或Jenkins)运行时一次性运行所有任务。

通过调用特定的Maven配置文件

来实现此目的

所以maven命令行调用是

mvn clean install -P autorun

自动运行配置文件是

    <profile>
        <id>autorun</id>
        <build>
          <plugins>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <phase>install</phase>
                        <configuration>
                          <target>
                            <property name="runtime_classpath" refid="maven.runtime.classpath"/>
                            <java classname="com.app.tool.Client" >
                                <arg value="-h" />                                  
                                <classpath>
                                    <pathelement path="${runtime_classpath}"/>
                                </classpath>
                                </java>
                          </target>
                        </configuration>
                        <goals>
                          <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
              </plugin>
            </plugins>  
        </build>
    </profile>

Client类中有一个主要过程

public static void main(String... args) throws Exception { ...

基本上

  1. 创建org.eclipse.jetty.server.Server对象
  2. 使用war文件启动http服务器应用程序
  3. 使用多个org.springframework.http.client.ClientHttpRequest个对象,使用

    行代码启动一些任务
    ClientHttpRequest request = restTemplate
            .getRequestFactory()
            .createRequest(
                    new URI("http://localhost:8080/tool/spring/" + jobName),
                    HttpMethod.GET);
    ClientHttpResponse clientHttpResponse = request.execute();
    if (clientHttpResponse.getStatusCode().value() != HttpStatus.OK_200) {
        throw new RuntimeException(...);
    }
    
  4. 我现在要出于各种原因重构应用程序。我的目标是保持当前的设计,虽然它的主要当前使用点更多的是控制台应用程序,我想添加一些更有用的交互功能。

    因此,为了最终达到目的,我已经开始将应用程序重新编写为Spring Boot应用程序。我仍然希望能够从命令行(和Jenkins)开始我想要的工作。使用Spring Boot&amp; amp;有一种简单(和等效)的方法吗?妈妈?我使用Main来启动应用程序,所以我可能需要将交换机传递到此处

    public static void main(String[] args) throws Exception {
        SpringApplication.run(SpringBootStartUpConfig.class, args);
    }
    

    我猜测当前用于启动服务器的许多代码都可以被转储,但我很难找到实现这一目标的最佳方法吗? (我更喜欢使用Maven,因为这是我们正在使用的核心工具,但我可以使用Gradle,如果这是更好的东西)。

1 个答案:

答案 0 :(得分:0)

要从命令行运行spring boot应用程序,可以包含spring boot maven插件,请参阅此处的参考 Spring boot maven plugin

然后使用

从命令行启动它
mvn spring-boot:run