困扰我的东西...... 在具有许多依赖项的大项目中,其中一些在Maven2中设置为SNAPSHOT。
问题是,如果没有加载项目或将依赖项修复到最后一个版本,我似乎无法通过Eclipse获取源代码。 对于调试,它真的很烦我......
修改
这是我在eclipse maven控制台中得到的:
26/08/10 11:31:46 CEST: Downloading http://repo-maven/archiva/repository/snapshots/com/blabla/1.1-SNAPSHOT/blabla-1.1-20100824.213711-80-javadoc.jar
26/08/10 11:31:47 CEST: Could not download sources for com.blabla:blabla:1.1-20100824.213711-80
在archiva上,我可以看到我想在eclipse中检索的部署内容......
Repository snapshots
Group ID com.blabla
Artifact ID blabla
Version 1.1-20100824.213711-80
Packaging jar
Parent com.blabla bla 1.1-SNAPSHOT (View)
Other Versions 1.1-20100824.213535-79
我可以使用浏览器下载此工件的源代码,但不能在Eclipse中下载...任何想法?
答案 0 :(得分:1)
问题是,如果没有加载项目或将依赖项修复到最后一个版本,我似乎无法通过Eclipse获取源代码。对于调试,它真的很烦我......
嗯,这些模块可能不会发布源JAR作为“常规”构建过程的一部分(即在发布之外)。如果这些模块在您的控制之下(这是我的理解),配置Maven Source Plugin为它们生成源JAR并在企业仓库中部署它们应该可以解决问题。来自Usage页面:
与您的工件一起安装源
有两种方法可以做到这一点。您可以 将此插件绑定到阶段或 您可以将其添加到个人资料中。目标 来源:jar-no-fork和 来源:test-jar-no-fork是首选 用于将目标绑定到构建 的生命周期。
使用相位绑定
安装源以下是配置的方法 你的pom.xml中的插件可以运行 在验证阶段自动执行:
<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.1.2</version> <executions> <execution> <id>attach-sources</id> <phase>verify</phase> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ... </project>
我们在这里使用验证阶段 因为这是阶段 在安装阶段之前,从而制作 确定源罐已经存在 在安装之前创建 的地方。
使用配置文件安装源
如果你想安装一罐你的 来源和你的工件 在发布过程中,你可以 将其添加到您的pom.xml文件中:
<project> ... <profiles> <profile> <id>release</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.1.2</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> ... </project>
使用配置文件可能是一个好主意,因此构建源JAR只能由在CI服务器级别运行的构建完成,而不能在开发人员机器上完成。