2017-04-20 10 views
1

をspringbootするMavenの変数を渡すために、私はメインクラス・ブート春にMavenのコマンドラインから変数を渡したいが、私は見当がつかないされています、ここに私のMavenのPOMファイルどのようにアプリケーション

<properties>   
    <maven.tomcat.home>Here should add argument from command line</maven.tomcat.home> 
</properties> 

ここでは私の春ですメインクラスをブート:私は以下のようにコマンドラインでMavenを実行すると

@PropertySource(value ={"file:@[email protected]/em/easymobile-application.properties"}) 
public class Application { 

    public static void main(String[] args) { 

     SpringApplication.run(Application.class, args); 

    } 

} 

だから、アプリケーションは、Tomcat

mvn clean install -Dmaven.tomcat.home=/usr/local/apache-tomcat-8.0.33/webapps 
へのWARファイルとして展開します

その後、私はtomcatを起動すると、easymobile-application.propertiesが見つからないというエラーが表示されますので、@PropertySourceまたは他の何かを使用して、mavenコマンドラインからeasymobile-application.propertiesをロードする方法を知っています。

+1

。 – Sajithv

答えて

0

私は正しいアプローチではないと思いますが、ある時点ではうまくいくと思いますが、webappを/usr/local/apache-tomcat-8.0.xxに展開する必要がある場合、どうしたらいいでしょうか?アーティファクトをもう一度コンパイルする必要がありますか?それは良いことではありません。より良いアプローチは、すべての環境でデプロイ/インストールできるバイナリ/アーティファクトを1つだけ作成することです。

前述のように、アプリケーションにファイルパスの設定が必要な場合は、 configプロパティファイルの代わりにMavenプロパティを使用します。

+0

ありがとう、ootero。アノテーション@PropertySourceは一定の値が必要ですが、コマンドラインから引数を渡すことができたら、私はeasymobile-application.propertiesのパスを変更できます。configファイルがリソース内に存在する場合それはwar/jarファイルにパックされますが、それは改訂に​​は便利ではありません。 – JoneHuang

0

ありがとうございました!私は問題を単純な方法で解決しました。単にtomcat \ bin \ catalina.shにapplication.propertiesを含むフォルダのパスを追加します。

CLASSPATH =:/ usr/local/apache-tomcat-8.0.33

@PropertySourceポイントへ:あなたは、構成プロパティファイルのプロパティを使用するのpom.xml file.betterでプロパティを必要とするのはなぜ「クラスパス全角/ easymobile-application.properties」

関連する問題