0

在我的一些 maven 模块(例如 myChild)中,我使用 maven-jar-plugin 创建一些额外的 jar,在此处命名为 my-plugin.jar。这个 my-plugin.jar 应该只是整个模块的一部分 - myChild.jar。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=...>
<modelVersion>4.0.0</modelVersion>

<artifactId>myChild</artifactId>

<parent>
<groupId>org.group</groupId>
<artifactId>myParent</artifactId>
<version>1.0</version>
</parent>

<build>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
            <execution>
                <id>build-plugins-jar</id>
                <phase>package</phase>
                <goals>
                    <goal>jar</goal>
                </goals>
                <configuration>
                    <includes>
                        <include>......</include>
                    </includes>
                    <finalName>my-plugin</finalName>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>
</build>

<dependencies>
 ...........
</dependencies>

当我想在另一个 maven 模块(例如 myExternal)中使用 myChild 模块时,我添加了对 myChild 的依赖项。但是 myExternal 的编译由于以下错误而失败:method does not override or implement a method from a supertype。当我删除两个 @Override 注释时,错误数量减少了两个。似乎使用了 Java 1.4。但是父 POM 具有 maven-compiler-pluginsourcetarget1.7。更令人好奇的是,myChild 模块编译得很好。但是当其他一些使用 myChild 的模块正在编译时,就会出现上述错误。

4

1 回答 1

0

好的,根据已发布的代码,您需要将maven-compiler-plugin 配置从各个部分移动pluginspluginsManagement所有子模块中都可见。

父 POM 示例配置

<pluginManagement>
    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.7</source>
            <target>1.7</target>
        </configuration>
    </plugin>
</pluginManagement>
于 2013-11-12T19:15:33.517 回答