簡體   English   中英

使用jooq-codegen-maven時如何將生成的源設置為目標字節碼1.7

[英]How to set the generated sources as target bytecode 1.7 when using jooq-codegen-maven

我使用JOOQ來實現MySQL DAO層。 而我的pom.xml部分如下所示,

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

<build>
    <plugins>
        <plugin>
            <groupId>org.jooq</groupId>
            <artifactId>jooq-codegen-maven</artifactId>
            <version>3.9.1</version>

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

            <dependencies />

            <configuration>
                <jdbc>
                    <driver>${jdbc.driver}</driver>
                    <url>${jdbc.url}</url>
                    <user>${jdbc.user}</user>
                    <password>${jdbc.password}</password>
                </jdbc>

                <generator>
                    <database>

                    </database>
                    <target>

                    </target>
                </generator>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass />
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

我通過mvn package得到了jar文件。 但是當我運行jar文件時,會發生錯誤:

java.lang.UnsupportedClassVersionError: org/jooq/Table : Unsupported major.minor version 52.0    

我了解到可以將運行中的JDK版本更新為較高版本,或用較低版本編譯jooq生成的類。 在這里,我必須選擇后一種方法。 但是在將maven-compiler-plugin的目標設置為1.7之后,結果卻沒有達到我的預期。 由於我仍然收到此錯誤,我感到困惑。 那么我如何實現我的目標呢?

版本52.0是Java 8,因此我認為您需要更改

<maven.compiler.source> 1.8 </maven.compiler.source>

<maven.compiler.target> 1.8 </maven.compiler.target>

還是您可以找到支持Java 1.8的JOOQ的較新版本?

jOOQ開源版3.7+版需要Java 8才能運行。 如果需要Java 7支持,則由jOOQ專業版和jOOQ企業版提供。 在此處查看版本支持: https : //www.jooq.org/download/versions

特別是,您已經定義了指向JDK 8的Maven屬性:

<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>

但是您沒有在編譯器插件配置中使用它們。 您應該切換此:

<source>1.7</source>
<target>1.7</target>

對此:

<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM