2017-02-20 171 views
0

我在pom.xml文件中设置这样的:如何强制Maven使用javax.persistence依赖项来定位Java 1.7?

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

当我打开.jar文件,并检查使用的javap -v .class文件,输出“主要版本:52”,其对应于1.8 ,所以我看到它不尊重我的配置。

我有javax.persistence依赖:

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

如果我删除此依赖关系,javap的-v输出“主要版本:51”,这是我想要的目标。

但我需要依赖。

是否可以使用javax.persistence依赖项来定位1.7?怎么样?

我期待编译错误,如果它不能以我配置的Java 1.7为目标。

我正在使用IntelliJ IDEA。

谢谢。

+0

我用简单的项目检查过它,并且此依赖项的存在不影响输出类的版本。 所以你必须在你的项目中有其他东西。 –

回答

0

你试过这个吗?

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

这正是原来的海报ist使用..无差异。 – khmarbaise

+0

我确实尝试过,但它似乎相当。 –

+0

我有一个项目,这个确切的依赖插件和javax.persistence作为依赖,它工作正常,因此我认为这可能会有所作为,我怀疑你也可能有不同的项目设置,也许检查ide设置 –