TISとのLTでのKotlin Annotation Processor Tools(kapt)の話 kapt1、kapt2、dagger2のworkaroundとか動作とか調べたやつ
,PUMJO"OOPUBUJPO1SPDFTTPS5PPMT ,BQU.BSDI !/BPIJSP:PTIJEB3FDSVJU5FDIOPMPHJFT$P -UE
View Slide
%*$POUBJOFSJTSFRVJSFE 0UIFSGSBNFXPSLTUPSFEVDFCPJMFSQMBUFDPEFJTSFRVJSFE"OESPJEJTOPUKVTUBGSPOUFOE CVUBGVMMTUBDLBQQMJDBUJPO"OESPJE$MFBO"SDIJUFDUVSF
"WPJESFqFDUJPO˚+%,%ZOBNJD1SPYZ!+BWBCZUFDPEFNBOJQVMBUJPOBUSVOUJNF JTHFOFSBMMZVOBWBJMBCMFº$(-JC "TQFDU+-58 MPBEUJNFXFBWJOH"OESPJE5IFPSZ
"OOPUBUJPO1SPDFTTJOH +43(FOFSBUFKBWBTPVSDFDPEFGSPNPSJHJOBMKBWBTPVSDF"DUJWJUZKBWB "[email protected]*OKFDUPS KBWB!*OKFDU (FOFSBUFE'JMF˞MPNCPLEPFT`UHFOFSBUFTPVSDFDPEFCVUUSBOTGPSN"45 BCTUSBDUTZOUBYUSFFKBWBD
,PUMJO-JHIUXFJHIU"MU+BWB OVMMTBGFDPNQJMFFSSPSWBSNPEFM.PEFMOVMM GVOFYFDVU IPHF.PEFM \NPEFMIPHF^ DPNQJMFFSSPSWBSNPEFM.PEFM OVMM GVOFYFDVUF IPHF4USJOHNPEFM FYFDVUF IPHF$PNQJMF&SSPS4VQQSFTT/VMMBCMF&YFDVUJPO
,PUMJOKBWBJOUFSPQFSBUCJMJUZ(FOFSBUFDMBTTCZ"4.MJLFTDBMB DMPKVSFgenerate stubfor javacjavac kotlincLUDPNQJMFKBWBXJUITUVCDPNQJMFLIXJUIKBWBDMBTTTUVC
1SPCMFN"DUJWJUZLU!*OKFDU"[email protected]*OKFDUPSLULU LUº(FOFSBUFE"DUJWJUZLU!*OKFDU"[email protected]*OKFDUPSKBWBLUº(FOFSBUFELPUMJODKBWBDXJUI+43LPUMJODEPFTO`UTVQQPSU+43 KBWBDDBO`USFBEBOOPUBUJPOPGLU
,BQU"OOPUBUJPO1SPDFTTPSGPSLPUMJO-FUKBWBDSFBELUBOOPUBUJPO"DUJWJUZLU "[email protected]*OKFDUPS KBWB!*OKFDU (FOFSBUFE'JMFLBQUBOEKBWBD
,BQULUBOOPUBUJPO YYYUYUgenerate stub javac kotlinc"OOPUBUJPO1SPDFTTPSXSBQQFESVOBTHSBEMFUBTLEBHHFSEBUBCJOEJOHPSNBʜTUVCBEEBOOPUBUJPOJOGPUPDMBTTDBMMVOXSBQQFEBOOPUBUJPOQSPDFTTPS
6OTUBCMFΤϥʔ NonExistentClassʹΞΫηεͰ͖·ͤΜerror.NonExistentClassͷΫϥεɾϑΝΠϧ͕ݟ͔ͭΓ·ͤΜৄࡉ࣍ͷελοΫɾτϨʔεͰௐ͍ࠪͯͩ͘͠͞ɻcom.sun.tools.javac.code.Symbol$CompletionFailure:error.NonExistentClassͷΫϥεɾϑΝΠϧ͕ݟ͔ͭΓ·ͤΜΤϥʔݸ:PVIBWFUZQFTHFOFSBUFECZ"OOPUBUJPO1SPDFTTJOHJOZPVSEFDMBSBUJPOTJHOBUVSFT MJLFGVOQSPWJEF0SNB%BUBCBTF DPOUFYU$POUFYUPSMBUFJOJUWBSPSNB0SNB%BUBCBTF#FDBVTF,PUMJONBLFTJUTTUVCTCFGPSF+BWB"OOPUBUJPO1SPDFTTJOHSVOT ,PUMJOLOPXTKVTUOPUIJOHBCPVU0SNB%BUBCBTF BOEUIFOBNFPGUIFEFDMBSBUJPOJOTUVCTXJMMCFFSSPS/PO&YJTUFOU$MBTT5IJTCSFBLTUIF"OOPUBUJPO1SPDFTTJOHUPPM*UTBLJOEPGLBQUMJNJUBUJPO BOEXFDVSSFOUMZEPFTOULOPXBXBZUPpYJUXJUIPVUSFJNQMFNFOUJOH"OOPUBUJPO1SPDFTTJOHJO,PUMJO#VUBTBXPSLBSPVOE ZPVDBODIBOHFUIFSFUVSOUZQFUP%BUBCBTF)BOEMF BOENBLFBOFYQMJDJUDBTUJOTJEFZPVSGVODUJPO UIJTpYFTUIFCVJMEJetBrains says
1SPCMFNXJUI%BHHFS%BHHFSDIFDLTBMMpFMETTFUUFSTHFUUFSTXIFUIFSPSOPU!*OKFDUJTEFDMBSFE%BHHFS.FNCFST*OKFDUJPOBDUJWJUZ#JOEJOH !*OKFDUBDUJWJUZ1SFTFOUFS!PO$SFBUF ʜ PO4UBSU ʜ TFU"DUJWJUZ#JOEJOH FSSPS/PO&YJTJUFOU$MBTT TFU"DUJWJUZ1SFTFOUFS ʜ
8PSLBSPVOE .BLFbFSSPS/PO&YJTUFOU$MBTT`CZZPVSTFMG UIJTJTPVSpSTUXPSLBSPVOE /FWFSVTFHFOFSBUFEDMBTTGPSNFUIPEBSHVNFOU ºWBMCJOEJOH"DUJWJUZ9YY#JOEJOH ˓QSJWBUFWBMCJOEJOH"DUJWJUZ9YY#JOEJOH4PMVUJPO'JY%BHHFSIUUQTHJUIVCDPNHPPHMFEBHHFSQVMM
,BQU FYQFSJNFOUBM (FOFSBUFOPUDMBTTTUVCTCVUKBWBTPVSDFTUVCT BOE/PO&YJTUFOU$MBTTKBWBLU /PO&YTJTUFOU$MBTTKBWBkaptKotlin task compileKolin task"OOPUBUJPO1SPDFTTPS"MMUIFLUKBWB
#VJME5JNFNJOTʙNJOTTFDT,BQU LPUMJO,BQU EBHHFSQBUDIFE5PUBMFMBQTFEUJNFGSPNbDMFBO`UPbJOTUBMM"1,bNJOTʙNJOTTFDT
1SPCBCMZ4UBCMF