2015-06-24 39 views
2

工作,我已經在父POMMaven的繼承不與pluginManagement

<properties> 
     <java.version>1.7</java.version> 
     <maven-compiler-plugin.version>3.3</maven-compiler-plugin.version> 
</properties> 
... 
<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>${maven-compiler-plugin.version}</version> 
       <configuration> 
        <source>${java.version}</source> 
        <target>${java.version}</target> 
        <compilerArgument>-XDignore.symbol.file</compilerArgument> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 

配置這個插件,而這在孩子

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

,當我在這兩個項目運行Maven更新項目,我期待那個孩子把JRE換成了1.7,但它沒有,我和我不知道爲什麼。如果我把這個配置放在孩子身上,那麼它就會起作用......你知道我做錯了什麼嗎?

+0

你肯定父在元素正確地上市? –

+0

@UdayShankar我相信。我只是沒有把這部分放在不擴展帖子 – jscherman

+0

要驗證,當你從子項目運行'mvn help:effective-pom'時,maven-compiler-plugin的配置會顯示什麼內容? 'mvn help:effective-pom -Djava.version = 1.7'顯示什麼不同嗎? –

回答

0

我在構建過程中遇到同樣的問題。構建失敗,出現以下錯誤:

[INFO] Compiling 2 source files to /project/target/test-classes 
[INFO] ------------------------------------------------------------- 
[ERROR] COMPILATION ERROR : 
[INFO] ------------------------------------------------------------- 
[ERROR] /project/src/test/java/com/example/MyClass.java:[18,63] lambda expressions are not supported in -source 1.7 
(use -source 8 or higher to enable lambda expressions) 

原因是由於測試文件沒有設置正確的java級別的編譯。下面的配置爲我工作:

在父:

<properties> 
    <java.version>1.8</java.version> 
    <maven-compiler-plugin.version>3.5.1</maven-compiler-plugin.version> 
</properties> 
... 
<build> 
    <pluginManagement> 
    <plugins> 
     <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>${maven-compiler-plugin.version}</version> 
     <configuration> 
      <source>${java.version}</source> 
      <target>${java.version}</target> 
      <testSource>${java.version}</testSource> 
      <testTarget>${java.version}</testTarget> 
     </configuration> 
     </plugin> 
    </plugins> 
    </pluginManagement> 
</build> 

在孩子:

<build> 
    <plugins> 
    <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
    </plugin> 
    </plugins> 
</build>