2016-12-25 30 views
1

在Gradle中我有一個文件存儲在Internet上,我想訪問。但我無法弄清楚如何將URL轉換爲Gradle中的文件。我需要將url轉換爲文件,以便將它作爲文件傳遞給任務。這是我到目前爲止:Gradle或Groovy - 如何將URL轉換爲文件?

allprojects { 
    afterEvaluate { project -> 
     String file = new URL('http://techslides.com/demos/samples/sample.json').file 
    } 
} 

這是明確不是我想要的。文件變量最終爲:demos/samples/sample.json,所以它看起來就像從URL本身獲取路徑。

我需要將實際的sample.json存儲在File對象中。如果可能的話,我還希望不必將文件寫入本地存儲,其他人可以將其作爲安全文件訪問。

+0

你可以逃脫只是文件的內容? 'String fileContent = new URL('http://techslides.com/demos/samples/sample.json').text' –

+0

no。其實這只是一個例子。我試圖真正拉下來的是一個私人密鑰庫。所以我明確需要文件或字節。 – j2emanue

+0

也許'byte [] fileContent = new URL('http://techslides.com/demos/samples/sample.json').bytes'呢? –

回答

1

,最簡單的方式做到這一點:

def fileLocation = 'file://techslides.com/demos/samples/sample.json' 
def fileURL = new URL(fileLocation) 
def remoteFile = new File(fileURL.toURI()) 

參見:File(URI uri)

更換fileLocation與您的任務有效值。

+0

第2行中的'-'是什麼,是否應該是'='? – OK999

+0

@ OK999是的,謝謝 –