【发布时间】: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