java - 如何寫一個intellij-idea插件,實(shí)現(xiàn)編譯時修改源代碼的目的
問題描述
比如下面這段Java源碼:
String pcName = '$local_pc_name$';System.out.println(pcName);
我希望IDEA編譯后運(yùn)行,輸出的是具體的電腦名,也就是說,在哪臺機(jī)器編譯,就輸出哪臺。比如我是在a-pc這臺電腦上編譯的,就輸出顯示a-pc。
這個怎么寫插件實(shí)現(xiàn)呢?
PS:1、源碼不修改,也就是保證另一臺電腦編譯時也有'$local_pc_name$'這個標(biāo)記;2、我想寫個IDEA插件,在編譯時自動處理這樣的字符串。
還煩請大神出手相助一二。
補(bǔ)充:電腦名這個只是我舉了個栗子,我的目的是編譯時替換特定字符串,而且源碼不變。也感謝已經(jīng)回復(fù)的兩位朋友出謀劃策。
問題解答
回答1:我希望IDEA編譯后運(yùn)行,輸出的是具體的電腦名,也就是說,在哪臺機(jī)器編譯,就輸出哪臺。
試試這個
import java.net.InetAddress;import java.net.UnknownHostException;String hostname = 'Unknown';try{ InetAddress addr; addr = InetAddress.getLocalHost(); hostname = addr.getHostName();}catch (UnknownHostException ex){ System.out.println('Hostname can not be resolved');}回答2:
通過環(huán)境變量設(shè)置
回答3:AbstractProcessor應(yīng)該使用注解處理器而不是插件。
