我有一个现有的应用程序,它是一个用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 { ...
基本上
org.eclipse.jetty.server.Server
对象使用多个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(...);
}
我现在要出于各种原因重构应用程序。我的目标是保持当前的设计,虽然它的主要当前使用点更多的是控制台应用程序,我想添加一些更有用的交互功能。
因此,为了最终达到目的,我已经开始将应用程序重新编写为Spring Boot应用程序。我仍然希望能够从命令行(和Jenkins)开始我想要的工作。使用Spring Boot&amp; amp;有一种简单(和等效)的方法吗?妈妈?我使用Main来启动应用程序,所以我可能需要将交换机传递到此处
public static void main(String[] args) throws Exception {
SpringApplication.run(SpringBootStartUpConfig.class, args);
}
我猜测当前用于启动服务器的许多代码都可以被转储,但我很难找到实现这一目标的最佳方法吗? (我更喜欢使用Maven,因为这是我们正在使用的核心工具,但我可以使用Gradle,如果这是更好的东西)。
答案 0 :(得分:0)
要从命令行运行spring boot应用程序,可以包含spring boot maven插件,请参阅此处的参考 Spring boot maven plugin
然后使用
从命令行启动它mvn spring-boot:run