複数行の文字列の値を置き換える次のスクリプトがあります。予想通りGroovyは、複数行の文字列に似たファイル内容のプレースホルダを置き換えます。
def param1 = 'Groovy'
def param2 = 'Java'
def multiline = """
${param1} is closely related to ${param2},
so it is quite easy to make a transition.
"""
//output shows with the replaced values for param1 and param2
println multiline
出力が示されています:
Groovy is closely related to Java,
so it is quite easy to make a transition.
問題:
は、今私は同じ使用してファイルの代わりに、複数行の文字列をやろうとしています。つまり、複数の行の文字列をファイルにコピーし、以下のスクリプトを使用して同じではあるが動作しない(目的の結果を出さない)。
私は確かに、それは私が紛失しているものでなければなりません。複数の方法を試しましたが、無駄になりました。
てみてください#1:スクリプト
def param1 = 'Groovy'
def param2 = 'Java'
def multiline = Eval.me(new File('test.txt').text)
println multiline
そして、それは実行に失敗しました。エラーは次のとおりです。
org.codehaus.groovy.control.MultipleCompilationErrorsException:起動に失敗しました: Script1.groovy:1:は、 '' が見つかり、EOF @ライン1を期待して、コラム42を sは密接に関連します$ {PARAM2}、 ^
1エラー
試行#2
def param1 = 'Groovy'
def param2 = 'Java'
def multiline = new File('test.txt').text
def finalContent = """$multiline"""
println finalContent
出力に違いはなく、そのままファイルの内容を表示します。
出力:
${param1} is closely related to ${param2},
so it is quite easy to make a transition.
任意のポインタ私が何をしないのですか?
現時点では、replace()
メソッドを使用してファイルコンテンツの変更を避けたいと考えています。
迅速な返信をありがとうございます。私は間違っていることがあるかもしれませんが。私が進める良いことである「テンプレート」を提案してくれてありがとう。誰かが私が試したことで間違っていることを説明するのを待つだろう。 – Rao
@ラオここであなたは説明があります:https://issues.apache.org/jira/browse/GROOVY-2505 – Opal
詳細に入り、問題の原因を参照していただきありがとうございます。テンプレート '。 @ Rao、確かに – Rao