Search code examples
mavenjspjooq

jOOQ can't auto generate classes


I'm trying to auto generate the jOOQ java code for my MySql database, but it's not working. I'm using jOOQ for my JSP project from maven.

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>MyHomeProject</groupId>
    <artifactId>MyHomeProject</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <release>13</release>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.3</version>
                <configuration>
                    <warSourceDirectory>WebContent</warSourceDirectory>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.jooq</groupId>
                <artifactId>jooq-codegen-maven</artifactId>
                <executions>
                    <execution>
                        <id>generate-mysql</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <jdbc>
                                <driver>com.mysql.jdbc.Driver</driver>
                                <url>jdbc:mysql://localhost:3306/myprojectdb?useSSL=false&amp;serverTimezone=UTC</url>
                                <user>webuser</user>
                                <password>webuserP@$$*oR6</password>
                            </jdbc>
                            <generator>
                                <database>
                                    <name>org.jooq.meta.mysql.MySQLDatabase</name>
                                    <includes>.*</includes>
                                    <excludes></excludes>
                                    <inputSchema>public</inputSchema>
                                </database>
                                <target>
                                    <packageName>com.myproject.home.jooq</packageName>
                                    <directory>${basedir}\src</directory>
                                </target>
                            </generator>
                        </configuration>
                    </execution>
                </executions>

                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>8.0.13</version>
                    </dependency>
                </dependencies>

            </plugin>
        </plugins>
    </build>
    <dependencies>
        <!-- MySQL -->
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
             <version>8.0.13</version>
         </dependency>
        <!-- jOOQ -->
        <dependency>
            <groupId>org.jooq</groupId>
            <artifactId>jooq</artifactId>
            <version>3.13.2</version>
        </dependency>
        <dependency>
            <groupId>org.jooq</groupId>
            <artifactId>jooq-meta</artifactId>
            <version>3.13.2</version>
        </dependency>
        <dependency>
            <groupId>org.jooq</groupId>
            <artifactId>jooq-codegen</artifactId>
            <version>3.13.2</version>
        </dependency>
        <!-- Other dependencies here -->
        <!-- ... -->
        <!-- ... -->
        <!-- ... -->
    </dependencies>
</project>

I'm running this project on eclipse with Tomcat. When I want to run the web application, I clean the project, then Project>properties>Deployment Assembly>Add>Java Build Path Entries>Maven Dependencies.

When I run the project, no java code for database is generated.
As it says in the documentation, since I'm using maven with jOOQ, I can auto generate the JAVA code without need to use cli. And without the need to create a library.xml file.

My issue is that jOOQ doesn't auto generate JAVA files with this pom.xml file. What am I doing wrong? Is there another configurations I need to make?


Solution

  • You specified:

    <inputSchema>public</inputSchema>
    

    MySQL doesn't have such a schema by default. Please use the schema of your actual database instead (case sensitive), or omit the inputSchema to generate code for all schemas.