2017-07-20 20 views
1

私はJavaで書かれ、mavenで管理されている桟橋のアプリです。ブラウザから実行できる基本的なタスクがいくつかありますが、主にコマンドライン(またはJenkins)から実行すると、すべてのタスクが1つの方法で実行されます。Springブートを起動し、Mavenプロファイルを使用して電話をかける

それは、特定のMavenのプロファイルを呼び出すことによってこれを行い

自動実行プロファイルは、メインの手順では、クライアントであり

<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> 

mvn clean install -P autorun 

あるので、Mavenのコマンドラインコールがされクラス

public static void main(String... args) throws Exception { ... 
基本的に

  1. org.eclipse.jetty.server.Serverオブジェクト
  2. を作成

    は、httpサーバアプリ

  3. をキックオフするwarファイルを使用して線に沿ってコードを使用して、タスクの数をオフに解雇する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ブートアプリケーションとしてアプリケーションを書き直しました。私はコマンドライン(そしてジェンキンス)から欲しい仕事をまだ発射することができるようにしたいと思います。 Springブート& Mavenでこれを行う簡単な方法(&相当)はありますか?私は現在、サーバを起動するために使用されるコードの多くをダンプすることができることを推測している

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

ここにスイッチを渡す必要があるので、おそらくアプリをオフに解雇するには、メインを使用していますが、私は苦労していますこれを達成する最善の方法を見つけるには? (これは私たちが使用しているコアツールですので、Mavenを使用することをお勧めしますが、これが優れている場合はGradleを使用できます)。コマンドラインから春のブートアプリケーションを実行するには

+0

を使用して、なぜ要求を発行するコマンドラインから起動異なる? mavenを使用しているときは、単にプロファイルやその他のものの代わりに 'mvn springBoot:run'を使ってアプリケーションを起動することができます。 –

答えて

0

あなたは春のブートMavenプラグインを含むことができ、ここで参照 Spring boot maven plugin

を参照して、

mvn spring-boot:run 
+1

ああ、実際に私はすでにそれをやっていた、私はこの答え(あなたと組み合わせて)私が得たいと思った私を得ると思います。すみません、少しばかげて申し訳ありません... https://stackoverflow.com/questions/23316843/get-command-line-arguments-from-spring-bootrun – gringogordo

+1

@gringogordo:プロファイルを作成するためにスプリングプロファイルを調べることをお勧めします。すべてをコマンドライン引数として渡すのではなく、アプリで起動するときにプロファイル名を渡すことができます。あなたはこれを必要としているとは確信していませんが、一見 –

関連する問題