2

嗨,我有一个多模块 Maven 项目,我在我的Windows机器中安装了 Java1.5和Java1.6 ,并在环境变量(对于 Eclipse Juno)中为 Java1.6设置了路径。但我只想用Java5运行 maven 命令。如何我可以在父项目 pom 中设置仅使用Java5来编译 Java 文件吗?我在父 pom.xm 文件中添加了这些行。

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.5.1</version>
                <configuration>
                    <compilerId>eclipse</compilerId>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

但我在智利项目 pom.xml 文件中遇到错误

生命周期配置未涵盖插件执行:org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile(执行:default-testCompile,阶段:test-compile)

4

2 回答 2

1

请使用 Plugin_Management 而不是 Plugins 声明此声明需要将插件配置继承到子项目 (http://maven.apache.org/pom.html#Plugin_Management)

在您的情况下,它将以下列方式显示:

pom.xml

<build>
  <pluginManagement>
    <plugins>
      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>2.5.1</version>
          <configuration>
             <source>1.5</source>
             <target>1.5</target>
          </configuration>
       </plugin>
    </plugins>
   </pluginManagement>
</build>

pom.xml

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

也可以在 pom.xml中设置以下属性

<properties>
   <maven.compiler.source>1.5</maven.compiler.source>
   <maven.compiler.target>1.5</maven.compiler.target>
</properties>
于 2012-11-07T07:27:09.563 回答
0

似乎与编译测试源有关的问题。

尝试将testSourceand添加testTarget到配置中:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
                <compilerId>eclipse</compilerId>
                <source>1.5</source>
                <target>1.5</target>
                <testSource>1.5</testSource>
                <testTarget>1.5</testTarget>
            </configuration>
        </plugin>
    </plugins>
</build>

编辑

这似乎是一个众所周知的问题,您必须对 m2e 插件进行一些配置。这个 Eclipse 站点有一些信息:http ://wiki.eclipse.org/M2E_plugin_execution_not_covered

build必须在标签下的父 pom 中添加这样的内容:

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.eclipse.m2e</groupId>
            <artifactId>lifecycle-mapping</artifactId>
            <version>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
                    <pluginExecutions>
                        <pluginExecution>
                            <pluginExecutionFilter>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-compiler-plugin</artifactId>
                                <versionRange>[1.0.0,)</versionRange>
                                <goals>
                                    <goal>test-compile</goal>
                                    <goal>compile</goal>
                                </goals>
                            </pluginExecutionFilter>
                            <action>
                                <execute/>
                            </action>
                        </pluginExecution>
                    </pluginExecutions>
                </lifecycleMappingMetadata>
            </configuration>
        </plugin>
    </plugins>
</pluginManagement>

我不是真正的 Eclipse 用户,所以不要问我为什么必须这样做,但应该这样做。

于 2012-11-07T08:10:34.827 回答