2016-07-29 4 views
0

でname.dir(.DIR見つかりません)エラーメッセージ:変数の名前に( "。"と " - ")が含まれているため、プロンプトエラーからgradleをオーバーライドすることはできますか?例えば;タスク

* What went wrong: 
A problem occurred evaluating root project 'telescope-master'. 
> Cannot get property 'dir' on null object 

gradle.propertiesが

classes.dir = WebContent/WEB-INF/classes 
webContent.dir = WebContent 
template.dir = hdm/template 
javascript.dir = hdm/function 
javascript4.0.2.dir = hdm/function/4.0.2  
datamodel.dir = hdm/datamodel 
certificate.dir = certificate 

build.gradleファイル

Properties extFile = new Properties() 
extFile.load(new FileInputStream('gradle.properties')) 

task FirmwareMatch(type: Zip) { 
    from ("${extFile.javascript.dir}") 
    include 'factoryResetOnFirmwareMatch.*' 
    archiveName 'factoryResetOnFirmwareMatch.zip' 
    destinationDir file('dist/hdm/function') 
} 

ファイルだから基本的に私が "。"両方のファイルで.dirから動作します。しかし、それを乗り越える方法はありますか?

また、$ {今日}をgradleで使用している場合、実際の日付を表示する方法もあります。

+0

一度に1つの質問に固執したいので、日付の質問を別々に投稿することをお勧めします。 – ajoberstar

答えて

0

だからあなたの問題の式は次のとおりです。

extFile.javascript.dir 

我々はGroovyのは、それをどのように解釈するかにいることを破る場合:

extFile.getProperty('javascript.dir') 

extFile.getProperty('javascript').getProperty('dir') 

あなたはGroovyのは、としてそれを解釈したいです getPropertyを直接呼び出すのに加えて、ここにはいくつかのGroovyオプションがあります:

extFile.'javascript.dir' 
extFile['javascript.dir'] 

また、あなたのgradle.propertiesファイルを仮定すると、(一般的にbuild.gradleの兄弟のような)プロジェクトのルートにしたり、GRADLE_HOMEディレクトリのいずれかである(すなわち、 ~/.gradle/gradle.properties)Gradleとプロジェクトプロパティとして利用可能なすべてのプロパティによって自動的にロードされます。

ですから、コードを解析し、あなたのすべてのプロパティを削除することができますし、単に次のようにします。

project.getProperty('javascript.dir') 
// or 
project.'javascript.dir' 
// or 
project['javascript.dir'] 

あなたが設定されていないこれらのプロパティから保護したい、とのGradle 2.13以上である場合は、使用することができますgetPropertyの代わりにfindPropertyがあり、例外をスローする代わりにnullを返します。

関連する問題