Gerando relatórios do Schemaspy via Maven
Antes de mais nada, para um melhor entendimento sobre o SchemaSpy e um startup mais rápido visite : Boaglio.com
Pra quem não conhece o Maven: Maven Home
Então, agora já que você conhece o SchemaSpy vamos partir pra configuração do mesmo com o Maven para aproveitar “a carona” do comando “mvn site” na criação dos relatórios do SchemaSpy.
Criei um projeto blank apenas para mostrar a configuração em si, no caso iremos atentar apenas para os arquivos de configuração.
Estrutura padrão Maven criada no eclipse utilizando o plugin M2 (http://m2eclipse.codehaus.org/update-dev)
Update site para plugin:
Estrutura:
Quando você instala o Maven ele cria no diretório do usuário uma pasta “.m2″. Nessa pasta ficará o repositório das dependências (jars) bem como um arquivo de configuração chamado “settings.xml” entre outras coisas.
Como o SchemaSpy ainda não possui plugin pra maven (pelo menos eu não encontrei nenhum) precisamos “Rodá-lo” de alguma forma e para isso editaremos esse arquivo settings.xml com a seguinte configuração:
<settings>
<profiles>
<profile>
<development>
<activation>
<activeByDefault>true</activeByDefault>
<activation>
<properties>
<!-- O arquivo jar do schemaspy foi colocado nesse diretório "d:\java" -->
<schemaspy.home>d:\java\</schemaspy.home>
<schemaspy.version>3.1.1</schemaspy.version>
<!-- Aqui indicamos onde ficarão os arquivos de documentação gerados -->
<!-- Notem que ficará dentro do site gerado pelo Maven -->
<schemaspy.report.dir>${project.build.directory}/site/schemaspy</schemaspy.report.dir>
<!--Você deve fornecer o driver do seu banco, aqui no caso o Mysql-->
<schemaspy.jdbc.driver>c:\java\mysql-connector-java-5.0.4.jar</schemaspy.jdbc.driver>
<!-- A seguir configurações comuns para acesso ao banco de dados-->
<schemaspy.database>spytes</schemaspy.database>
<schemaspy.driverClassName>com.mysql.jdbc.Driver</schemaspy.driverClassName>
<schemaspy.username>spytest</schemaspy.username>
<schemaspy.password>1234</schemaspy.password>
<schemaspy.database.host>localhost</schemaspy.database.host>
</properties>
</profile>
</profiles>
</settings>
Ok. Agora vamos para o POM:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>spytest</groupId>
<artifactId>spytest</artifactId>
<packaging>war</packaging>
<version>0.0.1</version>
<!--Note que todas as variáveis ${algumaCoisa} são as mesmas-->
<!--definidas no arquivo settings.xml visto anteriormente.-->
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>site</phase>
<configuration>
<tasks>
<echo>Gerando relatorio sobre o banco em: ${schemaspy.report.dir}</echo>
<java jar="${schemaspy.home}/schemaSpy_${schemaspy.version}.jar" output="${schemaspy.report.dir}/schemaspy-out.log" error="${schemaspy.report.dir}/schemaspy-error.log" fork="true">
<arg line="-t=mysql" />
<arg line="-db=${schemaspy.database}" />
<arg line="-u=${schemaspy.username}" />
<arg line="-p=${schemaspy.password}" />
<arg line="-cp=${schemaspy.jdbc.driver}" />
<arg line="-host=${schemaspy.database.host}" />
<arg line="-o=${schemaspy.report.dir}" />
</java>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!--Adicione a mesma dependência do connector que você declarou no arquivo settings.xml-->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.4</version>
</dependency>
</dependencies>
</project>
Bom agora vem a parte mais complicada:
Abra o shell/cmd acesse a pasta do projeto onde se encontra o arquivo pom.xml e execute o comando “mvn site”.
Se tudo deu certo você verá dentro da pasta “target/site” do seu projeto a pasta “schemaspy” com os relatórios gerados.
Abaixo você poderá efetuar o download do “projeto blank” (projeto usando a estrutura do Maven no eclipse) bem como o arquivo “settings.xml” (que deverá ficar na pasta .m2).
OBS: Após download favor renomear o arquivo spytest.odt para spytest.zip e settings.odt para settings.xml

