Ho scritto un bel plugin, che incorpora alcune sorgenti java generate.Eclipse PDE build/export plug-in/funzione/aggiornamento sito non onora la codifica dei file - come vietare la ricompilazione
Posso costruire il progetto bene. Posso eseguirlo in una configurazione di esecuzione che avvia un'altra eclissi e funziona a mio piacimento.
Così ho pensato: è ora di installarlo.
Quindi ho creato un progetto di funzionalità e un progetto di sito di aggiornamento e lo ho creato ed esportato e sembra che funzioni correttamente. Posso persino "installarlo" dal mio sito di aggiornamento, o esportare il plugin direttamente nel workbench in esecuzione. Vedo che è installato ma se provo ad aprire un file che potrebbe attivare il mio plugin, genera eccezioni. Nello specifico, mi dice che ci sono "problemi di compilazione non risolti".
Dopo una lunga ricerca, ricostruzione (nessun errore), ripetere il test di nuovo e di nuovo trovo un file logs.zip
, con una directory il cui nome ricorda quello del mio plugin e in esso un file 54k (attenzione, è il 2011 e lo spazio su disco è estremamente scarso, ovviamente) con il nome divertente @dot.log
. Quanto deve essere disperato cercare in un file del genere ?! Ma, sorpresa, sorpresa, si scopre ci sono 54K messaggi di errore come il seguente:
# 02.12.11 19:58:55 MEZ
# Eclipse Compiler for Java(TM) 0.B76_R37x, 3.7.1, Copyright IBM Corp 2000, 2011. All rights reserved.
----------
1. ERROR in X:\dev\frege\FregIDE\src\frege\IO.java (at line 1451)
final public static Consts ij = new Consts();
^
Syntax error on token "Invalid Character", delete this token
I "caratteri non validi" sono, naturalmente, i personaggi identificatori java perfettamente legali, è solo che non sono lettere ASCII. Questo è il motivo per cui ho tutti i file impostati su UTF-8, ho impostato UTF-8 come codifica predefinita, e come detto prima, con la normale build funziona perfettamente.
C'è un modo per impedire a Eclipse di ricompilare tutto quando esporto il sito di aggiornamento, la funzionalità o il plug-in. Questo è ciò che preferirei di più poiché tutto è già compilato e la ricompilazione richiede un altro minuto o giù di lì. (C'è anche una bandiera "file di classe Usare compilati nello spazio di lavoro." Ma sembra di fare nulla - semplicemente ricompila.)
Alternativa: Posso in qualche modo modificare lo script che utilizza per costruire questo? Non riesco a trovare lo script ant che usa per costruire. Se potessi cercare il passaggio di javac e inserire qui la codifica UTF-8. C'è una casella di controllo "Salva come Ant", ma il file Ant contiene solo:
<?xml version="1.0" encoding="UTF-8"?>
<project default="feature_export" name="build">
<target name="feature_export">
<pde.exportFeatures destination="x:\dev\frege\FregeUpdateSite"
exportSource="false" exportType="directory"
features="FregeFeature" useJARFormat="true"/>
</target>
</project>
Come posso fare in modo che eclissi utilizzi le impostazioni corrette per la compilazione compilata se non riesco a impedirne la compilazione?
scoperto nel frattempo che una possibile soluzione è quella di impostare '-Dfile.encoding = UTF-8' nel eclipse.ini – Ingo