【问题标题】:JOOQ : Generate sources with maven in Eclipse is not generating any fileJOOQ:在 Eclipse 中使用 maven 生成源不生成任何文件
【发布时间】:2016-12-05 21:19:45
【问题描述】:

我是 JOOQ 和 Maven 的新手。根据 JOOQ 的文档所述,我想通过提供模式来生成 Pojo。我尝试使用命令行方式,它运行良好。我在 Eclipse java 项目中添加了相同的配置。下面是我的 pom.mxl

<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>PojoGenerator</groupId>
    <artifactId>PojoGenerator</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>rutherford.pojo</name>
    <build>
        <sourceDirectory>src</sourceDirectory>
        <pluginManagement>

            <plugins>
                <plugin>
                    <!-- <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.5.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>

                <plugin> -->

                    <!-- Specify the maven code generator plugin -->
                    <!-- Use org.jooq for the Open Source edition org.jooq.pro for commercial 
                        editions, org.jooq.pro-java-6 for commercial editions with Java 6 support, 
                        org.jooq.trial for the free trial edition -->
                    <groupId>org.jooq</groupId>
                    <artifactId>jooq-codegen-maven</artifactId>
                    <version>3.8.4</version>

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

                    <!-- Manage the plugin's dependency. In this example, we'll use a PostgreSQL 
                        database -->
                    <dependencies>
                        <dependency>
                            <groupId>org.postgresql</groupId>
                            <artifactId>postgresql</artifactId>
                            <version>9.4-1201-jdbc41</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:5432/test</url>
                            <user>postgres</user>
                            <password>test</password>
                        </jdbc>

                        <!-- Generator parameters -->
                        <generator>
                            <database>
                                <name>org.jooq.util.postgres.PostgresDatabase</name>
                                <includes>.*</includes>
                                <excludes></excludes>
                                <inputSchema>public</inputSchema>
                            </database>
                            <target>
                                <packageName>com.generated.pojo</packageName>
                                <directory>${project.build.directory}/src</directory>

                            </target>
                        </generator>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

</project>

我尝试生成资源。它说 BUILD SUCCESS,但我在任何地方都看不到我生成的 Pojos。请让我知道我错过了什么。

【问题讨论】:

  • 有什么理由将 jOOQ 代码生成器插件放在 &lt;pluginManagement&gt; 中,而不是直接放入 &lt;build&gt; 中?
  • 如果我删除这个标签,我会收到这个错误Plugin execution not covered by lifecycle configuration: org.jooq:jooq-codegen-maven:3.8.4:generate (execution: default, phase: generate-sources)
  • 啊哈,我明白了。有这个众所周知的 Eclipse m2e 错误和 people suggest introducing the &lt;pluginManagement&gt; tag to "fix" it.,但这会改变 Maven 构建的语义。

标签: java eclipse maven jooq


【解决方案1】:

您仍然需要将插件添加到您的构建中,因为&lt;pluginManagement&gt; 仅帮助您声明通用配置以供重用。

<build>
    <pluginManagement>...</pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.jooq</groupId>
            <artifactId>jooq-codegen-maven</artifactId>
            <execution>...</execution>
        </plugin>
    </plugins>
</build>

在这里也可以看到这个问题:Maven: What is pluginManagement?

在这种情况下,ignore this well-known issue in Eclipse and avoid the &lt;pluginManagement&gt; element 可能更简单。

【讨论】:

    猜你喜欢
    • 2022-07-19
    • 2018-12-31
    • 2016-06-12
    • 2018-10-14
    • 2014-11-19
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多