2012-01-19 55 views
0

我正在學習使用Gradle作爲練習,將一些簡單的構建腳本放在一起,並且我想將當前機器的主機名放在JAR清單中。我知道我可以使用下面的語法設置清單屬性:如何使用Gradle將Build-Host屬性添加到JAR清單?

jar { 
    manifest { 
     attributes('Build-Host', 'foo') 
    } 
} 

我不知道是什麼,但是,是獲取當前機器的主機名的最好方式。 Gradle本身是否以某種方式將其提供給腳本?我搜索了docsuser guide,但沒有找到任何東西。

+0

這是怎麼樣的好奇主機名不在Unix約定的環境變量中。一種方法是將Gradle包裝在可以填充環境變量的Jenkins等其他東西中。 – MarkHu

回答

2

Gradle不提供獲取主機名的公共API。你必須自己做,例如調用Java的InetAddress.localHost.hostName

0

使用buildConfigFieldBuildConfig類Android上:


build.gradle

defaultConfig { 
    // ... 
    buildConfigField 'long', 'BUILD_DATE', System.currentTimeMillis() + 'L' 
    buildConfigField 'String', 'BUILD_HOST', '"' + InetAddress.getLocalHost().getCanonicalHostName() + '"' 
} 

App.java

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.US); 
Log.i(TAG, "BuildHost: " + BuildConfig.BUILD_HOST); 
Log.i(TAG, "BuildDate: " + df.format(new Date(BuildConfig.BUILD_DATE))); 
Log.i(TAG, "LaunchTime: " + df.format(Calendar.getInstance().getTime()));