【问题标题】:NPE when generating graph using SchemaCrawler Maven plugin使用 SchemaCrawler Maven 插件生成图形时的 NPE
【发布时间】:2015-06-27 14:32:41
【问题描述】:

我想使用 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

我明白了:

[ERROR] 未能执行目标 net.sourceforge.schemacrawler:schemacrawler-maven-plugin:9.5:schemacrawler 项目 my-project 上的 (default-cli):执行目标的 default-cli net.sourceforge.schemacrawler:schemacrawler-maven-plugin:9.5:schemacrawler 失败的。 NullPointerException -> [帮助 1] org.apache.maven.lifecycle.LifecycleExecutionException: 失败 执行目标 net.sourceforge.schemacrawler:schemacrawler-maven-plugin:9.5:schemacrawler 项目 my-project 上的 (default-cli):执行目标的 default-cli net.sourceforge.schemacrawler:schemacrawler-maven-plugin:9.5:schemacrawler 失败的。在 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.execute(MojoExecutor.java:145) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) 在 org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 在 org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 在 org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 在 org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:497) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 引起:org.apache.maven.plugin.PluginExecutionException: Execution 目标的默认 cli net.sourceforge.schemacrawler:schemacrawler-maven-plugin:9.5:schemacrawler 失败的。在 org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) ... 19 更多原因:java.lang.NullPointerException at java.io.File.(File.java:277) 在 org.apache.maven.reporting.AbstractMavenReport.execute(AbstractMavenReport.java:89) 在 org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) ... 20 更多

请帮助我 - 怎么做?

【问题讨论】:

    标签: java maven database-schema schemacrawler


    【解决方案1】:

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

    Sualeh Fatehi,SchemaCrawler

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-31
      • 2017-10-04
      • 1970-01-01
      • 2014-12-05
      • 2014-12-01
      • 2011-08-20
      • 1970-01-01
      • 2014-07-27
      相关资源
      最近更新 更多