2012-01-06 2 views
4

Я хочу создать er-диаграмму из базы данных, интегрированной в жизненный цикл maven. SchemaSpy генерирует er-диаграмму, а с помощью maven-schemaspy-plugin должно быть возможно интегрировать это в процесс lifecyle. (Если у кого-то есть лучшая идея для этого, пожалуйста, дайте мне знать)maven-schemaspy-plugin не работает (возможно, это проблема с репозиторией)

Я попробовал это с помощью следующего простого pom.xml (который должен только генерировать er-диаграмму); но плагин не запускается; он даже не мог быть загружен:

<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>test.schemaspy</groupId> 
    <artifactId>SchemaSpyGenerateDB_02</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>SchemaSpyGenerateDB_02</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>maven-plugins</groupId> 
     <artifactId>maven-schemaspy-plugin</artifactId> 
     <version>1.0</version> 
    </dependency> 
    <dependency> 
     <groupId>maven-plugins</groupId> 
     <artifactId>maven-schemaspy-plugin</artifactId> 
     <version>1.0</version> 
     <type>plugin</type> 
    </dependency> 
    </dependencies> 
    <!-- To use the report goals in your POM or parent POM --> 
    <reporting> 
    <plugins> 
     <plugin> 
     <groupId>maven-plugins</groupId> 
     <artifactId>maven-schemaspy-plugin</artifactId> 
     <version>1.1</version> 
      <configuration> 
       <databaseType>derby</databaseType> 
       <database>JPACertifiaction_Relationship</database> 
       <host>localhost</host> 
       <port>1527</port> 
       <user>user</user> 
       <password>password</password> 
      </configuration>    
     </plugin> 
    </plugins> 
    </reporting> 
</project> 

Команда

mvn site:site 

чего сообщение

ПОМ для Maven-плагинов: Maven-SchemaSpy-плагин: баночка: 1.0 отсутствует, информация о зависимости отсутствует

POM для maven-плагинов: maven-schemaspy-plugin: плагин: 1.0 отсутствует, нет информации о зависимости ион доступен

Я также попытался его со следующими настройками без успеха:

<dependency> 
    <groupId>com.wakaleo.schemaspy</groupId> 
    <artifactId>maven-schemaspy-plugin</artifactId> 
    <version>5.0.1</version> 
</dependency> 
.... 
<reporting> 
<plugins> 
    <plugin> 
    <groupId>com.wakaleo.schemaspy</groupId> 
    <artifactId>maven-schemaspy-plugin</artifactId> 
    <version>5.0.1</version> 
.... 
    <repository> 
     <id>Wakaleo Repository</id> 
     <url>http://maven.wakaleo.com/mojo/maven-schemaspy-plugin/</url> 
    </repository> 

Что меня также смущает то, что есть разные reposititories с разными версиями 1.0/5.0.1 так что действительно является официальным?

ответ

1

Вам не нужны записи

<dependencies> 
    <dependency> 
     <groupId>maven-plugins</groupId> 
     <artifactId>maven-schemaspy-plugin</artifactId> 
     <version>1.0</version> 
    </dependency> 
    <dependency> 
     <groupId>maven-plugins</groupId> 
     <artifactId>maven-schemaspy-plugin</artifactId> 
     <version>1.0</version> 
     <type>plugin</type> 
    </dependency> 
    </dependencies> 

удалить их. Когда вы определяете плагин (раздел плагина позже), он автоматически загружается maven. В вашем сообщении об ошибке указано, что 1.0 отсутствует, но ваш плагин равен 1,1, так что он все равно не подходит для ваших зависимостей.

Плагин maven-schemaspy и плагин com.wakaleo.schemaspy - это разные плагины разных авторов. Ни один из них не является плагином «официальный schemaspy» maven. Я смог решить его только с помощью плагина wakaleo (с maven 3). Другие плагины не будут доступны.

С Maven 3 название сайта изменилось, см. site generation in Maven 3. Как уже упоминалось в этой записи блога вы должны включить плагин в этом случае (обратите внимание, что версионирование изменилось):

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-site-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <reportPlugins> 
        <plugin> 
         <groupId>com.wakaleo.schemaspy</groupId> 
         <artifactId>maven-schemaspy-plugin</artifactId> 
         <version>1.0.4</version> 
         <configuration> 
          <databaseType>derby</databaseType> 
          <database>JPACertifiaction_Relationship</database> 
          <host>localhost</host> 
          <port>1527</port> 
          <user>user</user> 
          <password>password</password> 
         </configuration> 
        </plugin> 
       </reportPlugins> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

и вам нужно ссылку на репозиторий:

<pluginRepositories> 
    <pluginRepository> 
     <id>Wakaleo Repository</id> 
     <url>http://www.wakaleo.com/maven/repos/</url> 
    </pluginRepository> 
</pluginRepositories> 

то плагин начинается. Остальное зависит от вас :-)

+0

Стиль конфигурации maven2 с использованием раздела '' остается [рекомендуемый формат] (http://maven.apache.org/plugins/maven-site-plugin/maven-3 .html # Configuration_formats). Не используйте ''. –