一部の Maven モジュール (myChild など) では、maven-jar-plugin を使用して、ここでは my-plugin.jar という名前の追加の 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>
myChild モジュールを別の maven モジュール (myExternal など) で使用する場合は、myChild への依存関係を追加します。しかし、 myExternal のコンパイルは次のようなエラーのために失敗しました: method does not override or implement a method from a supertype
. @Override アノテーションを 2 つ削除すると、エラーの数が 2 つ減りました。Java 1.4が使われているようです。しかし、親POMにはmaven-compiler-plugin with source
and target
1.7. さらに興味深いことに、myChild モジュールは適切にコンパイルされます。しかし、myChild を使用する他のモジュールをコンパイルすると、上記のエラーが発生します。