Vários recursos são criados no decorrer da tradução, compilação, cópia ou, de outra maneira, no processamento de arquivos que o usuário cria e edita. Recursos derivados são aqueles que não têm dados originais e podem ser recriados de seus arquivos de origem. É comum que arquivos derivados sejam excluídos de certos tipos de processamento.
Por exemplo, os recursos derivados não são mantidos normalmente em um repositório da equipe, uma vez que desordenam o repositório, são alterados regularmente e podem ser recriados de seus arquivos de origem. Não é fácil para os provedores de equipe decidir sobre quais arquivos são derivados. A API do recurso fornece um mecanismo comum para que os plug-ins indiquem quais recursos que criam são derivados.
Os plug-ins podem utilizar IResource.setDerived(boolean) para indicar que um recurso é derivado de outros recursos. Os recursos recém-criados não são derivados por padrão, portanto, esse método deve ser utilizado para marcar explicitamente o recurso como derivado. Um uso comum é marcar uma subpasta do projeto como derivada quando uma pasta de "saída" (como a pasta "bin" em projetos Java) é criada pelo plug-in.
Outros plug-ins, geralmente provedores de equipe, podem utilizar IResource.isDerived para determinar se um determinado recurso deve ser gerenciado pelo repositório. Tentativas de marcar projetos ou a raiz do espaço de trabalho como derivados serão ignoradas.
Nota: O conceito de recursos derivados é fornecido para outros plug-ins (não pertencentes à equipe) para indicar quais recursos não são apropriados para o gerenciamento de repositório. Arquivos especiais criados por implementações da equipe para gerenciar seus dados não devem ser marcados como recursos derivados. Consulte Recursos particulares da equipe para obter uma técnica para marcar recursos de implementação ocultos relacionados à equipe.