生成されたソースからビルドされたMaven プロジェクトがあります。次のように構成された maven-source-plugin を使用しています。
<profiles>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
...
を使用してビルドしmvn clean install -P release
ます。これにより、${artifactId}-${version}-sources.jar
すべてのソース ファイルを含むファイルが生成されますが、ソースが利用可能であることを IDE が認識しないため、明らかに正しくパッケージ化されていません。Javadoc を含め、他のすべてが正しくビルドされ、機能します。
ライブラリのメイン エントリ ポイントはnet.mintern.primitive.Primitive
. プロジェクトがビルドされると、Java ファイルが に生成されtarget/generated-sources/net/mintern/primitive/Primitive.java
ます。ただしsources.jar
、Primitive.java
(およびディレクトリ内のその他すべてprimitive
) は JAR のルートにあります。親ディレクトリ ( net/mintern/primitive
) が JAR にありません。
これは正常ですか、それとも私の問題の原因でしょうか? 私は別の を試し、の代わりに にincludes
変更し、 を明示的に追加し、 を使用し、おそらくもっと忘れていましたが、何も効果がありませんでした。Maven ソース プラグインの構成は、JAR 内のパスを微調整する方法を提供していないようです。jar
jar-no-fork
<attach>true</attach>
build-helper-maven-plugin
add-source
ここで何が起こっているのかを理解するのを手伝ってもらえますか? この依存関係を追加することで、POM にプロジェクトを含めることができます。
<groupId>net.mintern</groupId>
<artifactId>primitive</artifactId>
<version>1.2</version>
完全な POM はGitHubで表示できます。ビルドを試してみたい場合は、問題のあるプロジェクトを でチェックアウトしてgit clone https://github.com/mintern-java/primitive.git
からgit checkout 1.2
.
編集: maven-jar-plugin と build-helper-maven-plugin の不敬な組み合わせを使用して、問題を回避することができました。そのPOMはバージョン1.2.1です。ただし、適切な maven-source-plugin の修正にはまだ興味があります。