1

我想使用 SchemaCrawler 生成数据库模式图,它是 Maven 插件。我不想使用像

java -classpath ../_schemacrawler/lib/*:lib/* ...

因为它必须是通用的。我想对所有依赖项使用 Maven,用户只会执行以下操作:

mvn schemacrawler:schemacrawler

甚至是包装此命令的小型 bash 脚本。

但是我在执行时收到 NullPointerException 。我的 pom.xml 的一部分:

<build>
    <plugins>
        <plugin>
            <groupId>net.sourceforge.schemacrawler</groupId>
            <artifactId>schemacrawler-maven-plugin</artifactId>
            <version>9.5</version>
            <configuration>
                <driver>com.mysql.jdbc.Driver</driver>
                <url>jdbc:mysql://localhost:3306/my-db</url>
                <user>root</user>
                <password>qwerty</password>
                <infolevel>maximum</infolevel>
                <command>details</command>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>5.1.35</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

执行时

mvn schemacrawler:schemacrawler -e

我越来越:

[错误] 无法在项目 my-project 上执行目标 net.sourceforge.schemacrawler:schemacrawler-maven-plugin:9.5:schemacrawler (default-cli):执行目标 net.sourceforge.schemacrawler:schemacrawler-maven-plugin 的 default-cli :9.5:架构爬虫失败。NullPointerException -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: 无法在项目 my-project 上执行目标 net.sourceforge.schemacrawler:schemacrawler-maven-plugin:9.5:schemacrawler (default-cli):执行默认-目标 net.sourceforge.schemacrawler:schemacrawler-maven-plugin:9.5:schemacrawler 的 cli 失败。在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 在 org.apache.maven.lifecycle .internal.MojoExecutor。invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:第497章.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 原因:org.apache.maven.plugin.PluginExecutionException: Execution目标 net.sourceforge.schemacrawler:schemacrawler-maven-plugin:9.5:schemacrawler 的默认 cli 失败。在 org.apache.maven.plugin.DefaultBuildPluginManager。

请帮助我 - 怎么做?

4

1 回答 1

0

请使用Exec Maven 插件从 Maven 中执行 SchemaCrawler,而不是 SchemaCrawler 插件。不幸的是,目前没有维护 SchemaCrawler Maven 插件。

Sualeh Fatehi,SchemaCrawler

于 2015-04-21T03:33:30.583 回答