我得到了 Eclipse/Maven 和“解决工作区项目的依赖关系”的极端案例。我的项目混合了编写的代码和生成的代码,生成的代码来自使用 JAXWS 的依赖项。
问题是,如果我选中“解决依赖项”,Eclipse/Maven 会忽略任何 JAR 依赖项并尝试仅通过查看工作区来解决所有问题,这会导致 Eclipse 显示诸如“找不到包/类”之类的错误(相关到生成的代码),即使该项目可以从命令行使用 Maven 正常构建。
另一方面,如果我取消选中它,它会通过仅查看 Maven 存储库中的 JAR 来解决所有问题。第二个选项通常有效,但是当我在类或变量上执行类似 Ctrl-click 的操作时,我得到类文件编辑器和“找不到源”,这不是很有用。此外,如果我在 IDE 中编辑代码但之后不运行“maven install”,它可能会不同步。
我想这主要是 Eclipse 的一个不便之处,但它很烦人。我正在考虑通过修改 Maven 依赖项以使用源代码构建(或调试)来解决此问题,但我不一定对所有内容都这样做。 “解决依赖关系”选项是否像我所描述的那样专门以一种方式或另一种方式工作?
最佳答案
您可能想看看构建助手 maven 插件。
你可以这样配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>target/generated-sources</source>
<source>target/jaxws/wsimport/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
这将告诉您的 eclipse maven 插件查看生成的源并将其包含在您的项目类路径中。
您还可以将生成的源手动添加到 eclipse 中的类路径中。 (在生成的文件夹上右击->添加到构建路径)
关于java - Eclipse/Maven 和 "Resolve dependencies from workspace projects"不能混合 jar 和源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16848600/