schemaspy:schemaspy

Note:

This goal should be used as a Maven report.

Full name:

nl.geodienstencentrum.maven:schemaspy-maven-plugin:5.3.2-SNAPSHOT:schemaspy

Description:

The SchemaSpy Maven plugin report.

This plugin is designed to generate SchemaSpy report for a Maven website. SchemaSpy also may need the Graphviz tool (https://www.graphviz.org/) in order to generate graphical representations of the table/view relationships, so this needs to be installed on your machine.

The schemaspy goal invokes the SchemaSpy command-line tool. SchemaSpy generates a graphical and HTML report describing a given relational database.

Attributes:

  • Requires a Maven project to be executed.
  • The goal is not marked as thread-safe and thus does not support parallel builds.
  • Since version: 2.0.
  • Binds by default to the lifecycle phase: site.

Required Parameters

Name Type Since Description
<database> String - The name of the database being analysed.
User Property: database
<outputDirectory> File - The shared output directory for the report. Note that this parameter is only evaluated if the goal is run directly from the command line. If the goal is run indirectly as part of a site generation, the shared output directory configured in the Maven Site Plugin is used instead.

A plugin may use any subdirectory structure (either using a hard-coded name or, ideally, an additional user-defined mojo parameter with a default value) to generate multi-page reports or external reports with the main output file (entry point) denoted by #getOutputName().


Default: ${project.build.directory}/reports

Optional Parameters

Name Type Since Description
<allowHtmlInComments> Boolean - Allow HTML In Comments. Any HTML embedded in comments normally gets encoded so that it's rendered as text. This option allows it to be rendered as HTML.
User Property: allowHtmlInComments
<catalog> String - No description.
Default: %
User Property: catalog
<commentsInitiallyDisplayed> Boolean -
Deprecated.
this seems to no longer be a supported option in SchemaSpy

Comments Initially Displayed. Column comments are normally hidden by default. This option displays them by default.
User Property: commentsInitiallyDisplayed
<connprops> String - Specifies additional properties to be used when connecting to the database. Specify the entries directly, escaping the ='s with \= and separating each key\=value pair with a ;.

May also be a file name, useful for hiding connection properties from public logs.


User Property: connprops
<cssStylesheet> String - The CSS Stylesheet. Allows you to override the default SchemaSpyCSS stylesheet.
User Property: cssStylesheet
<databaseType> String - The type of database being analysed — defaults to ora.
User Property: databaseType
<excludeColumnNamesRegex> String - Exclude matching columns from relationship analysis to simplify the generated graphs. This is a regular expression that's used to determine which columns to exclude. It must match table name, followed by a dot, followed by column name. For example: -x "(book.isbn)|(borrower.address)" Note that each column name regular expression must be surrounded by ()'s and separated from other column names by a |.
User Property: excludeColumnNamesRegex
<highQuality> Boolean - Generate higher-quality diagrams. Various installations of Graphviz (depending on OS and/or version) will default to generating either higher or lower quality images. That is, some might not have the "lower quality" libraries and others might not have the "higher quality" libraries.
User Property: highQuality
<host> String - The host address of the database being analysed.
User Property: host
<includeTableNamesRegex> String - Only include matching tables/views. This is a regular expression that's used to determine which tables/views to include. For example: -i "(.*book.*)|(library.*)" includes only those tables/views with 'book' in their names or that start with 'library'. You might want to use "description" with this option to describe the subset of tables.
User Property: includeTableNamesRegex
<locale> String - The locale to use when the report generation is invoked directly as a standalone Mojo.
See also: org.apache.maven.doxia.tools.SiteTool.DEFAULT_LOCALE, org.apache.maven.doxia.tools.SiteTool.getSiteLocales(java.lang.String)
Default: default
<logLevel> String - Detail of execution logging.
User Property: logLevel
<lowQuality> Boolean - Generate lower-quality diagrams. Various installations of Graphviz (depending on OS and/or version) will default to generating either higher or lower quality images. That is, some might not have the "lower quality" libraries and others might not have the "higher quality" libraries.
User Property: lowQuality
<noAds> Boolean -
Deprecated.
will be removed

Don't generate ads in reports.
Default: true
User Property: noAds
<noHtml> Boolean - Only generate files needed for insertion/deletion of data (e.g. for scripts).
User Property: noHtml
<noImplied> Boolean - Don't include implied foreign key relationships in the generated table details.
User Property: noImplied
<noLogo> Boolean -
Deprecated.
will be removed

Don't generate sourceforge logos in reports.
Default: true
User Property: noLogo
<noRows> Boolean - Don't query or display row counts.
User Property: noRows
<noSchema> Boolean - No schema required for this database (e.g. derby).
User Property: noSchema
<noViews> Boolean - Don't query or display row counts.
User Property: noViews
<outputFormat> String - The report output format: null by default, to represent a site, but can be configured to a Doxia Sink id.
User Property: output.format
<outputTimestamp> String - Timestamp for reproducible output archive entries, either formatted as ISO 8601 yyyy-MM-dd'T'HH:mm:ssXXX or as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).
Default: ${project.build.outputTimestamp}
<password> String - Database password to use — defaults to none.
User Property: password
<pathToDrivers> String - If specified, SchemaSpy will look for JDBC drivers on this path, rather than using the application classpath. Useful if your database has a non-O/S driver not bundled with the plugin.
User Property: pathToDrivers
<port> String - The port, required by some drivers.
User Property: port
<runOnExecutionRoot> boolean 5.0.4 Whether to create the report only on the execution root of a multi-module project.
Default: false
User Property: runOnExecutionRoot
<schema> String - Database schema to use — defaults to the specified user.
User Property: schema
<schemaDescription> String - Schema description. Displays the specified textual description on summary pages. If your description includes an equals sign then escape it with a backslash. NOTE: This field doesn't seem to be used by SchemaSpy in the current version.
User Property: schemaDescription
<schemas> String - Evaluate specified schemas. Similar to -showAllSchemas, but explicitly specifies which schema to evaluate without interrogating the database's metadata. Can be used with databases like MySQL where a database isn't composed of multiple schemas.
User Property: schemas
<showAllSchemas> Boolean - Evaluate all schemas in a database. Generates a high-level index of the schemas evaluated and allows for traversal of cross-schema foreign key relationships. Use with -schemaSpec "schemaRegularExpression" to narrow-down the schemas to include.
User Property: showAllSchemas
<singleSignOn> Boolean - Single Sign-On. Don't require a user to be specified with -user to simplify configuration when running in a single sign-on environment.
User Property: singleSignOn
<siteDirectory> File - Directory containing the site.xml file.
Default: ${basedir}/src/site
<targetDirectory> File - The output directory for the intermediate report.
Default: ${project.build.directory}
User Property: targetDirectory
<useDriverManager> Boolean - Some databases, like Derby, will crash if you use the old driver object to establish a connection (eg "connection = driver.connect(...)"). In this case, set useDriverManager to true to use the DriverManager.getConnection() method instead (eg "connection = java.sql.DriverManager.getConnection(...)"). Other databases (e.g. MySQL) seem to only work with the first method, so don't use this parameter unless you have to.
User Property: useDriverManager
<user> String - Connect to the database with this user id.
User Property: user
<vizjs> boolean - No description.
Default: true
User Property: vizjs

Parameter Details

<allowHtmlInComments>

Allow HTML In Comments. Any HTML embedded in comments normally gets encoded so that it's rendered as text. This option allows it to be rendered as HTML.
  • Type: java.lang.Boolean
  • Required: No
  • User Property: allowHtmlInComments

<catalog>

No description.
  • Type: java.lang.String
  • Required: No
  • User Property: catalog
  • Default: %

<commentsInitiallyDisplayed>

Deprecated.
this seems to no longer be a supported option in SchemaSpy

Comments Initially Displayed. Column comments are normally hidden by default. This option displays them by default.
  • Type: java.lang.Boolean
  • Required: No
  • User Property: commentsInitiallyDisplayed

<connprops>

Specifies additional properties to be used when connecting to the database. Specify the entries directly, escaping the ='s with \= and separating each key\=value pair with a ;.

May also be a file name, useful for hiding connection properties from public logs.

  • Type: java.lang.String
  • Required: No
  • User Property: connprops

<cssStylesheet>

The CSS Stylesheet. Allows you to override the default SchemaSpyCSS stylesheet.
  • Type: java.lang.String
  • Required: No
  • User Property: cssStylesheet

<database>

The name of the database being analysed.
  • Type: java.lang.String
  • Required: Yes
  • User Property: database

<databaseType>

The type of database being analysed — defaults to ora.
  • Type: java.lang.String
  • Required: No
  • User Property: databaseType

<excludeColumnNamesRegex>

Exclude matching columns from relationship analysis to simplify the generated graphs. This is a regular expression that's used to determine which columns to exclude. It must match table name, followed by a dot, followed by column name. For example: -x "(book.isbn)|(borrower.address)" Note that each column name regular expression must be surrounded by ()'s and separated from other column names by a |.
  • Type: java.lang.String
  • Required: No
  • User Property: excludeColumnNamesRegex

<highQuality>

Generate higher-quality diagrams. Various installations of Graphviz (depending on OS and/or version) will default to generating either higher or lower quality images. That is, some might not have the "lower quality" libraries and others might not have the "higher quality" libraries.
  • Type: java.lang.Boolean
  • Required: No
  • User Property: highQuality

<host>

The host address of the database being analysed.
  • Type: java.lang.String
  • Required: No
  • User Property: host

<includeTableNamesRegex>

Only include matching tables/views. This is a regular expression that's used to determine which tables/views to include. For example: -i "(.*book.*)|(library.*)" includes only those tables/views with 'book' in their names or that start with 'library'. You might want to use "description" with this option to describe the subset of tables.
  • Type: java.lang.String
  • Required: No
  • User Property: includeTableNamesRegex

<locale>

The locale to use when the report generation is invoked directly as a standalone Mojo.
See also: org.apache.maven.doxia.tools.SiteTool.DEFAULT_LOCALE, org.apache.maven.doxia.tools.SiteTool.getSiteLocales(java.lang.String)
  • Type: java.lang.String
  • Required: No
  • Default: default

<logLevel>

Detail of execution logging.
  • Type: java.lang.String
  • Required: No
  • User Property: logLevel

<lowQuality>

Generate lower-quality diagrams. Various installations of Graphviz (depending on OS and/or version) will default to generating either higher or lower quality images. That is, some might not have the "lower quality" libraries and others might not have the "higher quality" libraries.
  • Type: java.lang.Boolean
  • Required: No
  • User Property: lowQuality

<noAds>

Deprecated.
will be removed

Don't generate ads in reports.
  • Type: java.lang.Boolean
  • Required: No
  • User Property: noAds
  • Default: true

<noHtml>

Only generate files needed for insertion/deletion of data (e.g. for scripts).
  • Type: java.lang.Boolean
  • Required: No
  • User Property: noHtml

<noImplied>

Don't include implied foreign key relationships in the generated table details.
  • Type: java.lang.Boolean
  • Required: No
  • User Property: noImplied

<noLogo>

Deprecated.
will be removed

Don't generate sourceforge logos in reports.
  • Type: java.lang.Boolean
  • Required: No
  • User Property: noLogo
  • Default: true

<noRows>

Don't query or display row counts.
  • Type: java.lang.Boolean
  • Required: No
  • User Property: noRows

<noSchema>

No schema required for this database (e.g. derby).
  • Type: java.lang.Boolean
  • Required: No
  • User Property: noSchema

<noViews>

Don't query or display row counts.
  • Type: java.lang.Boolean
  • Required: No
  • User Property: noViews

<outputDirectory>

The shared output directory for the report. Note that this parameter is only evaluated if the goal is run directly from the command line. If the goal is run indirectly as part of a site generation, the shared output directory configured in the Maven Site Plugin is used instead.

A plugin may use any subdirectory structure (either using a hard-coded name or, ideally, an additional user-defined mojo parameter with a default value) to generate multi-page reports or external reports with the main output file (entry point) denoted by #getOutputName().

  • Type: java.io.File
  • Required: Yes
  • Default: ${project.build.directory}/reports

<outputFormat>

The report output format: null by default, to represent a site, but can be configured to a Doxia Sink id.
  • Type: java.lang.String
  • Required: No
  • User Property: output.format

<outputTimestamp>

Timestamp for reproducible output archive entries, either formatted as ISO 8601 yyyy-MM-dd'T'HH:mm:ssXXX or as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).
  • Type: java.lang.String
  • Required: No
  • Default: ${project.build.outputTimestamp}

<password>

Database password to use — defaults to none.
  • Type: java.lang.String
  • Required: No
  • User Property: password

<pathToDrivers>

If specified, SchemaSpy will look for JDBC drivers on this path, rather than using the application classpath. Useful if your database has a non-O/S driver not bundled with the plugin.
  • Type: java.lang.String
  • Required: No
  • User Property: pathToDrivers

<port>

The port, required by some drivers.
  • Type: java.lang.String
  • Required: No
  • User Property: port

<runOnExecutionRoot>

Whether to create the report only on the execution root of a multi-module project.
  • Type: boolean
  • Since: 5.0.4
  • Required: No
  • User Property: runOnExecutionRoot
  • Default: false

<schema>

Database schema to use — defaults to the specified user.
  • Type: java.lang.String
  • Required: No
  • User Property: schema

<schemaDescription>

Schema description. Displays the specified textual description on summary pages. If your description includes an equals sign then escape it with a backslash. NOTE: This field doesn't seem to be used by SchemaSpy in the current version.
  • Type: java.lang.String
  • Required: No
  • User Property: schemaDescription

<schemas>

Evaluate specified schemas. Similar to -showAllSchemas, but explicitly specifies which schema to evaluate without interrogating the database's metadata. Can be used with databases like MySQL where a database isn't composed of multiple schemas.
  • Type: java.lang.String
  • Required: No
  • User Property: schemas

<showAllSchemas>

Evaluate all schemas in a database. Generates a high-level index of the schemas evaluated and allows for traversal of cross-schema foreign key relationships. Use with -schemaSpec "schemaRegularExpression" to narrow-down the schemas to include.
  • Type: java.lang.Boolean
  • Required: No
  • User Property: showAllSchemas

<singleSignOn>

Single Sign-On. Don't require a user to be specified with -user to simplify configuration when running in a single sign-on environment.
  • Type: java.lang.Boolean
  • Required: No
  • User Property: singleSignOn

<siteDirectory>

Directory containing the site.xml file.
  • Type: java.io.File
  • Required: No
  • Default: ${basedir}/src/site

<targetDirectory>

The output directory for the intermediate report.
  • Type: java.io.File
  • Required: No
  • User Property: targetDirectory
  • Default: ${project.build.directory}

<useDriverManager>

Some databases, like Derby, will crash if you use the old driver object to establish a connection (eg "connection = driver.connect(...)"). In this case, set useDriverManager to true to use the DriverManager.getConnection() method instead (eg "connection = java.sql.DriverManager.getConnection(...)"). Other databases (e.g. MySQL) seem to only work with the first method, so don't use this parameter unless you have to.
  • Type: java.lang.Boolean
  • Required: No
  • User Property: useDriverManager

<user>

Connect to the database with this user id.
  • Type: java.lang.String
  • Required: No
  • User Property: user

<vizjs>

No description.
  • Type: boolean
  • Required: No
  • User Property: vizjs
  • Default: true