Compilando projetos com dependência circular

Dae pessoal,

Estou querendo resolver um problema de compilação de dois projetos com dependência circular.

*Por favor desconsiderem o problema da dependência circular em si e foquem no problema em compilar projetos com isso.

Exemplo:

Proj1
Class1 {
Class2 c2;
}

Proj2
Class2 {
Class1 c1;
}

Eclipse/JDT, quando configurado para apenas para mostrar referências circulares como WARNs e não como ERRORs, resolve esse problema de compilação.

O que eu gostaria de saber é como fazer isso fora do eclipse.

Alguém sabe como fazer ou onde posso encontrar esse material específico?

Agradeço desde já qualquer ajuda

Abraços

Bem, você está querendo resolver um problema de referência circular, mas quer que desconsideremos o problema de referência circular? Isso sim é problema de referência circular.

Bem, tirando as piadas:

Cara, com isso você está simplesmente jogando a sujeira pra debaixo do tapete. Se você tem referências circulares, eu acredito fortemente que você deva refatorar o seu código e retirar isso. Eu acho muito difícil você realmente precisar disso na maneira que você está fazendo.

Cara, não tem como. A compilação é um processo linear, portanto, as dependências sempre devem ocorrer em árvore, caso contrário, é um problema de ovo/galinha.
O que acontece no Eclipse é que, por default, ele vai compilando conforme você vai desenvolvendo. O que deve ter acontecido é que você deve ter começado a desenvolver o Projeto1, criou o Projeto2 e estabeleceu a dependência circular. Veja que mesmo nesse caso, as coisas aconteceram de maneira linear.

Bom pessoal, como eu tentei deixar claro no post inicial estou a busca de uma solução para compilação da referência circular e não na solução da referência circular em si. Então, respostas do tipo “referência circular é erro, corrija isso!” não me ajudam muito. :wink:

Minha intenção é entender como o Eclipse faz essa mágica por trás dos panos e fazer o mesmo através de scripts Ant.

Obrigado mesmo assim gente!

Camarada, as duas respostas anteriores dizem isto.

Basicamente, o Eclipse vai “andando” e, quando encontra algo compilável, compila.
Se esse algo compilável é uma referência, por exemplo, à um outro projeto, ele irá verificar se o mesmo foi compilado.
Caso não tenha sido, ele para a compilação atual, vai até o segundo projeto e começa a compilá-lo.
Segue o fluxo até encontrar outra referência ou o final do projeto.

O problema é que nesse tipo de referência, começa a compilação do projeto1, encontra a referência ao projeto2, para a compilação do projeto1, vai até o projeto2, acha a referência ao projeto1, para a compilação do projeto2, tenta compilar o projeto1 e fica nisso.

drsmachado, desculpa mas não entendi tua explicação. Tu considerou o cenário principal que é a dependência circular?

ou melhor … tu ta dizendo queo Eclipse não resolve esse tipo de “problema” ?