我想使用SchemaCrawler生成DB模式图,它是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上执行目标net.sourceforge.schemacrawler:schemacrawler-maven-plugin:9.5:schemacrawler (默认-cli)失败:目标net.sourceforge.schemacrawler:schemacrawler-maven-plugin:9.5:schemacrawler的执行默认-cli失败。org.apache.maven.lifecycle.LifecycleExecutionException:未能在项目my上执行目标net.sourceforge.schemacrawler:schemacrawler-maven-plugin:9.5:schemacrawler (默认-cli):执行默认- net.sourceforge.schemacrawler:schemacrawler-maven-plugin:9.5:schemacrawler失败。在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)在org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) at org.apache.maven.cli.MavenCli.doMain(( org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)在org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)引起的: org.apache.maven.plugin.PluginExecutionException:执行默认-cli目标net.sourceforge.schemacrawler:schemacrawler-maven-plugin:9.5:schemacrawler失败。在org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110) at 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) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) . 20
请帮帮我-怎么做?
发布于 2015-04-21 03:33:30
请使用Exec插件从Maven内部执行SchemaCrawler,而不是SchemaCrawler插件。不幸的是,目前还没有维护SchemaCrawler Maven插件。
Sualeh Fatehi,SchemaCrawler
https://stackoverflow.com/questions/29755128
复制相似问题