Solução para … “[xX][mM][lL]” não é permitido. no Ant

Apache Ant é uma ferramenta utilizada para automatizar a construção de software. Ela é similar ao make mas é escrita na linguagem Java e foi desenvolvida inicialmente para ser utilizada em projetos desta linguagem.

Para iniciar com Ant no Windows:

Baixe a versão binária em http://ant.apache.org/bindownload.cgi, o link para download será algo parecido com:

.zip archive: apache-ant-1.9.0-bin.zip Essa é a última versão disponibilizada quando escrevi este post.

Extraia esses arquivos em algum diretório de sua preferência, no meu caso escolhi o Disco Local C. Criei a pasta e copiei todos os arquivos para dentro.

C:\apache-ant-1.9.0

Você precisa configurar as variáveis do ambiente para o Ant.

Variável = ANT_HOME
Valor       = C:\apache-ant-1.9.0

E precisar editar a variável Path que já existe, basta apenas acrescentar o valor “;C:\apache-ant-1.9.0\bin” ao final sem as aspas.

Variáveis do ambiente para Ant

Variáveis do ambiente para Ant

No cmd do Windows digite “ant -version” será exibido algo como “Apache Ant(TM) version 1.9.0 compiled on March 5 2013”.

Agora você precisa instalar as tarefas do Maven para Ant.

Baixe o arquivo maven-ant-tasks-2.1.3.jar no site http://maven.apache.org/ant-tasks/download.html. Verifique se não existe uma versão mais recente. Salve este .jar no diretório C:\apache-ant-1.9.0\lib. Isso no meu exemplo, cole na pasta lib de seu diretório escolhido.

Nós ainda precisaremos do Hibernate e do HSQLDB, mas eles serão baixados e configurados pelo Maven.

Crie um outro diretório no local de sua preferência. Novamente eu criei no disco local C. Esta é a estrutura segundo as orientações do livro Dominando Hibernate.

print030

 

 

 

 

 

 

Dentro desse diretório criei o arquivo build.xml. Veja abaixo sua localização.

print031

 

 

 

 

Segue abaixo modelo do documento:

<?xml version=”1.0″ encoding=”ISO-8859-1″ ?>
<project name=”Harnessing Hibernate 3 (Developer’s Notebook Second Edition)”
default=”db” basedir=”.”
xmlns:artifact=”antlib:org.apache.maven.artifact.ant”>

<!– Set up properties containing important project directories –>
<property name=”source.root” value=”src”/>
<property name=”class.root” value=”classes”/>
<property name=”data.dir” value=”data”/>

<artifact:dependencies pathId=”dependency.class.path”>
<dependency groupId=”hsqldb” artifactId=”hsqldb” version=”1.8.0.7″/>
<dependency groupId=”org.hibernate” artifactId=”hibernate”
version=”3.2.5.ga”>
<exclusion groupId=”javax.transaction” artifactId=”jta”/>
</dependency>
<dependency groupId=”org.hibernate” artifactId=”hibernate-tools”
version=”3.2.0.beta9a”/>
<dependency groupId=”org.apache.geronimo.specs”
artifactId=”geronimo-jta_1.1_spec” version=”1.1″/>
<dependency groupId=”log4j” artifactId=”log4j” version=”1.2.14″/>
</artifact:dependencies>

<!– Set up the class path for compilation and execution –>
<path id=”project.class.path”>
<!– Include our own classes, of course –>
<pathelement location=”${class.root}” />
<!– Add the dependencies classpath –>
<path refid=”dependency.class.path”/>
</path>

<target name=”db” description=”Runs HSQLDB database management UI
against the database file–use when application is not running”>
<java classname=”org.hsqldb.util.DatabaseManager”
fork=”yes”>
<classpath refid=”project.class.path”/>
<arg value=”-driver”/>
<arg value=”org.hsqldb.jdbcDriver”/>
<arg value=”-url”/>
<arg value=”jdbc:hsqldb:${data.dir}/music”/>
<arg value=”-user”/>
<arg value=”sa”/>
</java>
</target>

<target name=”print-classpath” description=”Show the dependency class path”>
<property name=”class.path” refid=”dependency.class.path”/>
<echo>${class.path}</echo>
</target>

</project>

Depois basta executar no cmd, C:\dominandoHibernate>ant db

Não tive sucesso de primeira, pois meu arquivo build.xml estava sem o encoding na primeira linha.

Estava assim <?xml version=”1.0″ ?> e toda vez que eu tentava executar aparecia a seguinte mensagem no prompt de comando:

C:\dominandoHibernate>ant db
Buildfile: C:\dominandoHibernate\build.xml

BUILD FAILED
C:\dominandoHibernate\build.xml:1: O destino da instruþÒo de processamento corre
spondente “[xX][mM][lL]” nÒo Ú permitido.

Total time: 0 seconds

Solução: editei a primeira linha para: <?xml version=”1.0″ encoding=”ISO-8859-1″ ?> e o problema foi resolvido.