2013-12-18 93 views
9

Gradleを使用して、Javaアプリケーションのシステムプロパティを設定することが可能かどうか疑問に思っていましたか? gradleを使ってシステムプロパティを設定する方法は?

私はgradle.propertiesファイルを使用して

systemProp.name = my name 

としてプロパティを定義するが、私は、Javaアプリケーションからそのプロパティを取得しようとすると、そのプロパティが見つからなかったことを

System.getProperty("name") 

を使用してみました。

build.gradleとgradle.propertiesはプロジェクトのルートフォルダにあります。

は、これは私のbuild.gradleは、次のようになります。これは、AppEngineのアプリケーションの一部であり、私はそれを実行

systemProp.firstName=Marko 
systemProp.lastName=Vuksanovic 

apply plugin: 'war' 
apply plugin: 'appengine' 

buildscript { 
    repositories { 
     mavenCentral() 
    } 

    dependencies { 
     classpath 'com.google.appengine:gradle-appengine-plugin:1.8.6' 
    } 
} 

appengine { 
    httpPort = 8081 
} 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile group: 'com.google.inject', name: 'guice', version: '3.0' 
    compile group: 'com.google.inject.extensions', name: 'guice-servlet', version: '3.0' 
    compile group: 'javax.servlet', name: 'servlet-api', version: '2.5' 
    compile group: 'org.hibernate', name: 'hibernate-entitymanager', version: '4.2.0.Final' 
    compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.27' 
    compile 'com.google.protobuf:protobuf-java:2.5.0' 
    compile 'com.google.appengine:appengine-api-1.0-sdk:1.8.6' 
    compile 'com.google.template:soy:2012-12-21' 
    compile 'org.json:json:20090211' 
} 

そして、これは私のbuild.propertiesはどのように見えますか

gradle appengineRun 
+0

ようなビルドコードの外観は、Javaアプリケーションを実行しない方法は? 'build.gradle'を投稿してください。 –

答えて

3

gradle.propertiesに設定されたシステムプロパティは次のようになります。 Gradleが実行されているJVMでのみ使用できます。

appengineRun:gradle-appengine-pluginドキュメントから

は、プロジェクト コードを実行しているローカルの開発サーバーを起動します。

jvmFlags:ローカル開発サーバーに渡すJVMフラグ。

別のJVMであるアプリケーションエンジンでシステムプロパティを使用する必要がある場合は、jvmFlagsプロパティを使用する必要があります。

明示的に:gradle.propertiesで

appengine { 
    jvmFlags = ['-DfirstName=Marko', '-DlastName=Vuksanovic'] 
} 

appengine { 
    jvmFlags = ['-DfirstName=$firstName', '-DlastName=$lastName'] 
} 
5

私はGradleのアプリケーションのプラグインで使用するために、この上でつまずきました。実行タスクに追加します。素晴らしい作品:

run { 
    systemProperties['MYPROP'] = '/my/prop/value' 
} 
+2

これは私のためには動作しません、 '>引数のメソッドrun()を見つけることができませんでした[build_3q2qbgis9k2n97muogsnwks4i $ _run_closure5 @ 3172da27]' – gromit190

4

これはSelenideテストフレームワークのための小道具を設定し、私はそれを行う方法です。

test { 
    systemProperty "browser", "chrome" 
    systemProperty "webdriver.chrome.driver", "$projectDir/drivers/chromedriver" 
} 
関連する問題