背景
一直pom文件中的插件支持哪些参数,都不知道怎么查。只能在网上看一些别人给的配置,但是具体能用哪些还是不清楚。
为了这个目的,我决定尝试下自己找下插件的参数。
举个例子:我想了解下"jooq-codegen-maven"插件下,都可以配置哪些参数。
<plugin>
<groupId>org.jooq</groupId>
<artifactId>jooq-codegen-maven</artifactId>
<version>3.9.1</version>
<configuration></configuration>
</plugin>
解决思路
mvn可以通过help来查看文档
mvn help:describe -DgroupId=org.jooq -DartifactId=jooq-codegen-maven -Dgoal=generator -Ddetail=true -Doutput=jooq.txt
- DgroupId : groupId
- DartifactId : artifactId
- Ddetail : 查看内容
- Dgoal : 选填,如果不清楚有哪些,可以先不写
- Doutput : 选填,保存下来的时候有编码错误(还未解决)
贴一下查出来的内容:
Name: jOOQ Codegen Maven
Description: jOOQ effectively combines complex SQL, typesafety, source code
generation, active records, stored procedures, advanced data types, and Java
in a fluent, intuitive DSL.
Group Id: org.jooq
Artifact Id: jooq-codegen-maven
Version: 3.14.8
Goal Prefix: jooq-codegen
This plugin has 2 goals:
jooq-codegen:generate
Description: The jOOQ Codegen Plugin
Implementation: org.jooq.codegen.maven.Plugin
Language: java
Bound to phase: generate-sources
Available parameters:
basedir
User property: jooq.codegen.basedir
The base directory that should be used instead of the JVM's working
directory, to resolve all relative paths.
configurationFile
User property: jooq.codegen.configurationFile
An external configuration file that is appended to anything from the
Maven configuration, using Maven's combine.children='append' semantics.
configurationFiles
User property: jooq.codegen.configurationFiles
An external set of configuration files that is appended to anything from
the Maven configuration, using Maven's combine.children='append'
semantics.
generator
The generator settings
jdbc
The jdbc settings.
logging
User property: jooq.codegen.logging
The logging threshold.
onError
User property: jooq.codegen.onError
The on-error behavior.
skip
User property: jooq.codegen.skip
Whether to skip the execution of the Maven Plugin for this module.
jooq-codegen:help
Description: Display help information on jooq-codegen-maven.
Call mvn jooq-codegen:help -Ddetail=true -Dgoal=<goal-name> to display
parameter details.
Implementation: org.jooq.codegen.maven.HelpMojo
Language: java
Available parameters:
detail (Default: false)
User property: detail
If true, display all settable properties for each goal.
goal
User property: goal
The name of the goal for which to show help. If unspecified, all goals
will be displayed.
indentSize (Default: 2)
User property: indentSize
The number of spaces per indentation level, should be positive.
lineLength (Default: 80)
User property: lineLength
The maximum length of a display line, should be positive.
通过上述文档,我们可以知道,“jooq-codegen"有两个goal,一个是"generate”, 一个是"help"。
但是我们还是不清楚某配置下该怎么配置。
比如:"generate"下支持配置参数 “generator"和"jdbc”, 但是怎么配置还是不清楚。
于是,我决定下载插件的代码下来看下。没有什么比代码更能说明问题的了。
首先,我到maven仓库去搜索"jooq-codegen", 结果如下图
进入之后,选择我需要的版本,下载对应的jar包(插件其实也是一种jar包)
反编译后,找到了配置,"@Parameter"就是插件里可以配置的标签。感兴趣的小伙伴可以去搜下如何写插件,这里不展开了。
但是问题是,我还是不知道这两个参数可以配置什么。
于是我就想找下这两个类的实现。
找了半天,发现包里没有。于是猜测是引入了其他的包。
到maven仓库查看依赖,发现了这个"jooq-codegen"包。
于是下载下jar包来。
反编译后,查看目录下并没有需要的类,因为我们的类的路径是"org.jooq.util.jaxb"下,这里面没有jaxb路径。
所以再接着找这个类的依赖。
用同样的方法找了"jooq-meta"包。反编译后,终于找到了我们需要的类。
终于找到了支持的配置,验证了下 ,是可以的。
<configuration>
<jdbc>
<driver>com.mysql.jdbc.Driver</driver>
<url>${db.url}</url>
<user>${db.user}</user>
<password>${db.password}</password>
</jdbc>
<generator>
<database>
<name>org.jooq.util.mysql.MySQLDatabase</name>
<inputSchema>${db.name}</inputSchema>
<outputSchemaToDefault>true</outputSchemaToDefault>
<includeExcludeColumns>true</includeExcludeColumns>
<includes>.*</includes>
</database>
<target>
<packageName>com.mycore</packageName>
<directory>../mycore/src/main/java/</directory>
</target>
<strategy>
<matchers>
</matchers>
</strategy>
</generator>
</configuration>