我有一个从生成的源构建的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 无法识别源可用。其他一切都可以正常构建和工作,包括 Javadocs。
库的主要入口点是net.mintern.primitive.Primitive
. 项目构建时,Java 文件在target/generated-sources/net/mintern/primitive/Primitive.java
. 然而sources.jar
,Primitive.java
in (以及目录中的所有其他内容primitive
)位于 JAR 的根目录中。net/mintern/primitive
JAR 中不存在父目录 ( )。
这是正常的,还是这可能是我的问题的原因?我尝试了不同的includes
、更改为jar
而不是jar-no-fork
、明确地添加<attach>true</attach>
、使用build-helper-maven-plugin
toadd-source
以及可能更多我忘记的东西——没有任何效果。Maven 源插件配置似乎没有提供任何方法来调整 JAR 中的路径。
你能帮我弄清楚这里发生了什么吗?您可以通过添加此依赖项将项目包含在您的 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 修复感兴趣。