2016-07-31 23 views
1

Ich bin neu bei JOOQ und Maven. Ich möchte Pojo generieren, indem ich ein Schema gebe, wie es in der Dokumentation von JAOQ heißt. Ich habe es mit der Kommandozeile versucht und es hat perfekt funktioniert. Ich habe die gleiche Konfiguration in Eclipse Java-Projekt hinzugefügt. Unten ist mein pom.mxlJOOQ: Generiere Quellen mit Maven in Eclipse erzeugt keine Datei

<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> 

Ich habe versucht, Ressourcen zu generieren. Es sagt BUILD SUCCESS, aber ich kann meine generierten Pojos nirgendwo sehen. Bitte lassen Sie mich wissen, was ich vermisse.

+0

Gibt es einen Grund, warum Sie das jOOQ-Code-Generator-Plugin in '' setzen, anstatt direkt in ''? –

+0

Wenn ich dieses Tag entferne, bekomme ich diesen Fehler 'Plugin-Ausführung nicht durch Lifecycle-Konfiguration abgedeckt: org.jooq: jooq-codegen-maven: 3.8.4: generieren (Ausführung: Standard, Phase: generate-sources)' –

+0

Aha, Aha. Es gibt diesen bekannten Eclipse-m2e-Bug, und [Leute schlagen vor, das '' -Tag einzuführen, um es zu "reparieren".] (Http://stackoverflow.com/q/6352208/521799), aber das ändert die Semantik Ihres Maven bauen. –

Antwort

1

Sie müssen das Plug-in noch zu Ihrem Build hinzufügen, da <pluginManagement> nur hilft, allgemeine Konfigurationen zur Wiederverwendung zu deklarieren.

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

Siehe auch diese Frage hier: Maven: What is pluginManagement?

In diesem Fall ist es wahrscheinlich einfacher, nur ignore this well-known issue in Eclipse and avoid the <pluginManagement> element.