【问题标题】:Maven inheritance isn't working with pluginManagementMaven 继承不适用于 pluginManagement
【发布时间】:2015-09-11 05:40:07
【问题描述】:

我在父 pom 中配置了这个插件

 <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,但事实并非如此,我和我不知道为什么。如果我将配置放在孩子身上,那么它就可以工作......你知道我做错了什么吗?

【问题讨论】:

  • 您确定父元素在 元素中正确列出了吗?
  • @UdayShankar 是的,我确定。我只是没有把那部分放在不延长帖子
  • 验证一下,当您从子项目运行mvn help:effective-pom 时,maven-compiler-plugin 的配置会显示什么? mvn help:effective-pom -Djava.version=1.7 有什么不同吗?
  • @DonBottstein 不,这些输出之间没有区别
  • @jscherman 基于此,它看起来不像 pom 的问题 .. 更有可能是您的 IDE(Eclipse?)。我不知道这是否会有所帮助,但这里有一个指向您所遇到问题的故障排除指南的链接:maven.apache.org/plugins/maven-eclipse-plugin/trouble-shooting/…

标签: java maven inheritance multi-module


【解决方案1】:

我在构建过程中遇到了同样的问题。构建失败并出现以下错误:

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

【讨论】:

    猜你喜欢
    • 2013-08-09
    • 1970-01-01
    • 2017-01-24
    • 2016-06-28
    • 2012-03-01
    • 2021-02-27
    • 1970-01-01
    • 2012-04-26
    • 2012-04-22
    相关资源
    最近更新 更多