如何强制Maven以具有javax.persistence依赖项的Java1.7为目标?

如何强制Maven以具有javax.persistence依赖项的Java1.7为目标?,java,maven,maven-3,maven-compiler-plugin,Java,Maven,Maven 3,Maven Compiler Plugin,我正在pom.xml文件中设置: <properties> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <build> <plugins> <plugin>

我正在pom.xml文件中设置:

<properties>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
</properties>


<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.1</version>
        </plugin>
    </plugins>
</build>

1.7
1.7
org.apache.maven.plugins
maven编译器插件
3.6.1
当我打开.jar文件并用javap-v检查.class文件时,它会输出对应于1.8的“主要版本:52”,因此我发现它不尊重我的配置

我依赖javax.persistence:

<dependencies>
    <dependency>
        <groupId>javax.persistence</groupId>
        <artifactId>persistence-api</artifactId>
        <version>1.0.2</version>
    </dependency>
</dependencies>

javax.persistence
持久性api
1.0.2
如果我删除这个依赖项,javap-v将输出我想要的目标“majorversion:51”

但我需要依赖

是否可以使用javax.persistence依赖项将1.7作为目标?怎么做

如果它不能像我配置的那样以Java1.7为目标,我预计会出现编译错误

我正在使用IntelliJ IDEA

谢谢。

你试过这个吗

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

org.apache.maven.plugins
maven编译器插件
3.5.1
1.7
1.7

这正是原始海报所使用的。没有区别。我尝试过,但似乎是等效的。我有一个项目,它使用了这个精确的依赖插件和javax.persistence作为依赖项,并且工作正常,因此我认为这可能会有所不同,我也怀疑您的项目设置可能有所不同,可能检查ide设置我用简单项目检查了它,这个依赖项的存在不会影响输出类的版本。所以你的项目中肯定还有别的东西。