vertx-jooq icon indicating copy to clipboard operation
vertx-jooq copied to clipboard

Error while trying to generate DAO for vertx-jooq-classic-reactive

Open titkovdmitry opened this issue 6 years ago • 4 comments

I try to generate DAO from example I create simple project from example https://github.com/jklingsporn/vertx-jooq/tree/master/vertx-jooq-classic-reactive? but get error Execution default of goal org.jooq:jooq-codegen-maven:3.10.5:generate failed: A required class was missing while executing org.jooq:jooq-codegen-maven:3.10.5:generate: org/jooq/codegen/JavaGenerator

Root 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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>

<groupId>test</groupId>
<artifactId>build</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>

<modules>		
        <module>test</module>
</modules>

`

project pom.xml in test/pom.xml

` <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion>

<parent>
	<groupId>test</groupId>
	<artifactId>build</artifactId>
	<version>1.0.0</version>
</parent>

<artifactId>test</artifactId>
<name>test</name>

<properties>
	<maven.compiler.source>1.8</maven.compiler.source>
	<maven.compiler.target>1.8</maven.compiler.target>
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>


<dependencies>
	<dependency>
		<groupId>org.jooq</groupId>
		<artifactId>jooq</artifactId>
		<version>3.10.5</version>
	</dependency>
	<dependency>
		<groupId>io.github.jklingsporn</groupId>
		<artifactId>vertx-jooq-classic-reactive</artifactId>
		<version>4.0.0</version>
	</dependency>
</dependencies>
<build>
	<plugins>
		<plugin>
			<!-- Specify the maven code generator plugin -->
			<groupId>org.jooq</groupId>
			<artifactId>jooq-codegen-maven</artifactId>
			<version>3.10.5</version>

			<!-- The plugin should hook into the generate goal -->
			<executions>
				<execution>
					<goals>
						<goal>generate</goal>
					</goals>
				</execution>
			</executions>

			<dependencies>
				<dependency>
					<groupId>org.postgresql</groupId>
					<artifactId>postgresql</artifactId>
					<version>42.2.2</version>
				</dependency>
				<dependency>
					<groupId>io.github.jklingsporn</groupId>
					<artifactId>vertx-jooq-generate</artifactId>
					<version>4.0.0</version>
				</dependency>
			</dependencies>

			<!-- Specify the plugin configuration. The configuration format is the 
				same as for the standalone code generator -->
			<configuration>
				<!-- JDBC connection parameters -->
				<jdbc>
					<driver>org.postgresql.Driver</driver>
					<url>jdbc:postgresql://localhost/chatadmin1</url>
					<user>postgres</user>
					<password>psqlpass</password>
				</jdbc>

				<!-- Generator parameters -->
				<generator>
					<name>io.github.jklingsporn.vertx.jooq.generate.classic.ClassicReactiveVertxGenerator</name>
					<!-- use 'io.github.jklingsporn.vertx.jooq.generate.classic.ClassicReactiveGuiceVertxGenerator' 
						to enable Guice DI -->
					<database>
						<name>org.jooq.meta.postgres.PostgresDatabase</name>
						<includes>.*</includes>
						<inputSchema>public</inputSchema>
						<outputSchema>public</outputSchema>
						<unsignedTypes>false</unsignedTypes>
						<forcedTypes>
							<!-- Convert tinyint to boolean -->
							<forcedType>
								<name>BOOLEAN</name>
								<types>(?i:TINYINT)</types>
							</forcedType>
							<!-- Convert varchar column with name 'someJsonObject' to a io.vertx.core.json.JsonObject -->
							<forcedType>
								<userType>io.vertx.core.json.JsonObject</userType>
								<converter>io.github.jklingsporn.vertx.jooq.shared.JsonObjectConverter</converter>
								<expression>someJsonObject</expression>
								<types>.*</types>
							</forcedType>
							<!-- Convert varchar column with name 'someJsonArray' to a io.vertx.core.json.JsonArray -->
							<forcedType>
								<userType>io.vertx.core.json.JsonArray</userType>
								<converter>io.github.jklingsporn.vertx.jooq.shared.JsonArrayConverter</converter>
								<expression>someJsonArray</expression>
								<types>.*</types>
							</forcedType>
						</forcedTypes>
					</database>
					<target>
						<!-- This is where jOOQ will put your files -->
						<packageName>YOUR_TARGET_PACKAGE_HERE</packageName>
						<directory>YOUR_TARGET_DIRECTORY_HERE</directory>
					</target>
					<generate>
						<interfaces>true</interfaces>
						<daos>true</daos>
						<fluentSetters>true</fluentSetters>
					</generate>

					<strategy>
						<name>io.github.jklingsporn.vertx.jooq.generate.VertxGeneratorStrategy</name>
					</strategy>
				</generator>

			</configuration>
		</plugin>
	</plugins>
</build>

`

titkovdmitry avatar Dec 12 '18 20:12 titkovdmitry

Have the same issue

haposan06 avatar Dec 21 '18 06:12 haposan06

Thank you for your bug report and sorry for the delayed answer. Have you tried setting a valid values for YOUR_TARGET_PACKAGE_HERE (e.g. io.github.com) and YOUR_TARGET_DIRECTORY_HERE (e.g. src/main/java)?

jklingsporn avatar Jan 07 '19 09:01 jklingsporn

Yes, in the project these variables are set correctly

titkovdmitry avatar Jan 07 '19 10:01 titkovdmitry

If the error still appears: can you please post the full error code when running mvn clean generate-sources (probably adding -X for debugging output)?

jklingsporn avatar Jan 07 '19 10:01 jklingsporn