Pergunta

O Eclipse (3.4.2 com Pydev) lida com recursos fora da sincronização (arquivos que foram editados fora do IDE) de maneira diferente de outros IDEs que eu usei, onde apenas recursos com editores abertos são considerados fora de sincronia . No Eclipse, qualquer recurso pode sair da sincronização.

Isso significa que, quando executo uma pesquisa depois que qualquer arquivo foi alterado fora do Eclipse, recebo uma caixa de diálogo de erro dizendo que os arquivos estão fora de sincronia, mesmo que não tenham editores abertos. Até onde eu sei, não há comando global de refresh, por isso sou forçado a ler os nomes do projeto (tenho vários projetos) na caixa de diálogo Erro e clique com o botão direito do mouse para cada um deles.

Eu verifiquei o Refresh Automatically configurando Settings > General > Workspace, mas isso não tem efeito. Existe alguma maneira de obter o Eclipse sempre carregar recursos não ativos do disco?

Foi útil?

Solução

Este problema será corrigido no Eclipse 3.7 (Indigo). Enquanto "Atualizar automaticamente"Eventualmente, traz os recursos de volta à sincronização, o gancho de atualização existe apenas para o Windows; portanto, no Linux e Mac OS, ele deve pesquisar o sistema de arquivos periodicamente.

De 3,7 há uma nova preferência Settings > General > Workspace > Refresh On Access (AKA refresco leve). Essa preferência faz com que o Eclipse atualize automaticamente os recursos quando descobrir que eles estão 'fora de sincronia'. Ao abrir, ler ou pesquisar arquivos, impedirá que os erros fora da sincronize ocorram.

Veja também: https://bugs.eclipse.org/303517

Outras dicas

Eu acho que se você clicar no nó do projeto no Project Explorer e pressione F5 ou clique com o botão direito do mouse e selecione Atualizar, todos os recursos para esse projeto serão atualizados. Além disso, se você clicar em vários projetos, poderá atualizar vários projetos ao mesmo tempo.

Um único clique em um projeto, um Ctrl+A para selecionar tudo, e um F5 deve fazer exatamente o que você precisa - atualize tudo.

Vou ter que testar isso quando tiver a chance, mas acredito que é assim que superei problemas semelhantes no passado.


Percebi que essa resposta rotineiramente está sendo votada. Gostaria de ressaltar que a pergunta se refere a uma versão específica do Eclipse: 3.4.2. Na verdade, não havia método automático para atualizar os recursos fora da sincronização Até a versão 3.7 Indigo do Eclipse, como mencionado Na resposta de James Blackburn. O método descrito nesta resposta é o único método para conseguir isso na versão 3.4.2 (e qualquer outra versão antes do 3.7 Indigo).

O problema fora da sincronização é comum no Eclipse IDE, então você deve verificar esta opção Windows -> Preferência -> Espaço de trabalho -> Atualizar usando ganchos nativos ou pesquisa.

Há uma atualização global - não tenha nada (ou tudo) selecionado no pacote Explorer e pressione F5 (ou clique com o botão direito do mouse no espaço vazio e selecione atualizar). Obviamente, isso pode demorar muito se você tiver grandes projetos.

O Eclipse Helios possui um recurso de atualização embutido em preferências> Geral> Workspace. Está no mesmo local em que você desative construções automáticas. Selecione Atualizar automaticamente. Um plug -in com a mesma funcionalidade é o plug -in FileSync da Andrei Loskutov. O endereço do site de atualização é: http://andrei.gmxhome.de/eclipse/. Durante a instalação, selecione Eclipse 3.5-3.7 Plugins> Filesync.

Dado que o Java 7 possui uma API para ganchos do sistema de arquivos, alguém poderia pensar que a atualização poderia ser tratada melhor no eclipse.

EDIT: Na verdade, há um plugin que usa esse mecanismo: https://github.com/psxpaul/eclipsejava7refresher

Talvez você deva adicionar uma solicitação de recurso no site Eclipse:

https://bugs.eclipse.org/bugs/

Eu acho que seria uma ótima idéia adicionar uma preferência por recursos desatualizados automaticamente.

Uma atualização global está realmente faltando no eclipse. O procedimento acima com a seleção de todos os projetos e a atualização da atualização (por exemplo, F5) não funciona se você tiver projetos fechados incluídos em sua seleção. Isso significa que, se você tiver 1/2 de seus muitos projetos fechados como eu, você se vê manualmente clicando em suas dezenas de projetos. Isso é bastante doloroso. Eu gostaria que o Eclipse simplesmente ignorasse projetos fechados.

A atualização global realmente existe em um eclipse simples, sem nenhum plug -ins e sem selecionar todos os projetos em seu espaço de trabalho.

Basicamente, você precisa desmarcar tudo no seu Project Explorer e atingir F5. Para fazer isso CTRL+, clique no recurso selecionado no Project Explorer e atinge F5.

Sim, a atualização do acesso está atrasada ... essas respostas para isso e perguntas semelhantes geralmente sugeriram que a ativação global de refrescões automáticos, que poderia ter uma idade para grandes projetos remotos. De fato, existem aqueles que diriam que a atualização no acesso deveria ter sido o comportamento padrão (<3.x)) ...

Consegui resolver isso criando uma nova configuração de "ferramenta externa" que executa um arquivo em branco em branco. Na configuração de corrida, você pode atualizar a área de trabalho quando concluído. Em seguida, criei uma macro usando praticamente macro que 1) executa a última configuração de execução de ferramentas externas (atualizando o espaço de trabalho) e, em seguida, 2) executa a última configuração Run Run (executando meu aplicativo). Se você desmarcar "alocar console", a entrada de ferramenta externa preenchida não será exibida na janela de depuração.

Mesmo que as soluções propostas por outras pessoas estejam realmente corretas, você tem um "Atualize tudo"Plugin para eclipse. Basta adicionar o Página de atualização para a sua lista de sites de atualização do Eclipse para instalá -lo no seu IDE.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top