在Maven依赖中无法将源代码附加到jar文件

3
我有一个使用团队版本1.0的另一个项目B的JAR文件的Maven项目A。项目B的版本1.0已经提交到本地Maven存储库中。
问题在于项目B不包括源代码。因此,在项目A中,我在“Maven Dependencies”下的JAR B上右键单击,在“Package Explorer”中选择“Java Source Attachment”,并将位置路径设置为项目B(在版本1.1中,我不再有以前版本的源代码)源文件夹(xxx/projectB/src/main/java/)。但似乎Maven找不到任何源类。
2个回答

3
这有几种解决方法:
  1. 让B团队使用Maven发布插件。发布插件默认会在发布版本时上传源代码和javadoc文件。
  2. 自己上传B的源代码文件。由于你似乎已经在本地拥有它,将其上传到Maven仓库即可。然后就可以检索到它了。
  3. 使用Maven Install Plugin将它们安装在本地仓库(在本地计算机上)。文档甚至展示了如何为源代码文件执行该操作的示例。缺点是只有你自己能看到它,别人看不到。

由于你正在使用m2eclipse,因此可以右键单击项目,然后选择Maven > Download Sources


谢谢。看起来Maven依赖没有什么诀窍。我必须要求有人将带源代码的B重新上传到Maven。 - bnguyen82
我已经添加了另一个(本地)解决方案,您可以自己完成(Maven Install Plugin)。 - nwinkler

1

将以下代码添加到您的 B pom 文件中(我认为其中一个应该有效):

<build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>install</id>
                                <phase>install</phase>
                                <goals>
                                    <goal>sources</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>

我不能这样做。因为B项目不在我的代码库中。有更优雅的方式吗? - bnguyen82
Java反编译插件适用于Eclipse 或许不够优雅,但它能正常工作。 - Andrzej Jozwik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接