Ant- Como alterar fonte e compilar

Bom dia,

Durante o desenvolvimento, eu uso um ambiente (bando de dados) de teste. Na minha classe conexão eu aponto para um IP específico.

Ao liberar um jar, eu tenho que alterar o IP, rodar o Ant e alterar o IP novamente para (apontar para o desenvolvimento outra vez). O risco de esquecer da alteração do IP é grande.

O Ant não pode fazer isto por mim, ou seja , antes de gerar o jar, ele altera meu fonte e o compila ?

Obrigado,

Márcio

Sim, o ant pode fazer isso por você, mas porque cargas d’água vc está colocando uma propriedade parametrizável na classe?!? :shock:

Veja a task Replace.

smota,

Tenho uma classe com o endereço ip do banco que é distribuida em um jar para vários usuários ( sistemas desktop - Swing ) . Toda vez que atualizo algumas destas classes, eu gero o jar novamente e o coloco em um disco da rede para que ele seja colocado no jre/lib/ext de cada usuário. Durante o desenvolvimento, eu aponto para outro banco (de testes )

Há como resolver isto de uma forma melhor ? Um arquivo properties ? Teria que colocar este arquivo em cada máquina ?

Ajude-me por favor,

Márcio

Uma coisa que você pode fazer é usar System.getProperty e passar um parâmetro -D no seu ambiente de desenvolvimento. No de produção, onde é mais difícil de passar parâmetros, você pode simplesmente omitir o tal parâmetro.

java -Dambiente=desenvolvimento MinhaClasse

e na sua classe você pode ter algo como:

if (System.getProperty("ambiente") == null) {
    stringConexao = "blablabla"; // produção
} else {
    stringConexao = "blebleble"; // desenvolvimento
}

Se bem que para tais coisas, é melhor usar JNDI, ou arquivos de configuração .properties, etc.

Um .properties é fácil de usar (ponha o arquivo no seu .jar, use algo como

InputStream is = getClass().getResourceAsStream("/arquivo.properties");
Properties prop = new Properties();
prop.load (is);
is.close();

para carregar um arquivo .properties.