java - Eclipse/Maven 和 "Resolve dependencies from workspace projects"不能混合 jar 和源?

标签 java eclipse maven maven-3

我得到了 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/

相关文章:

java - RxJava 的扫描运算符能否跨多个订阅者保持状态

eclipse - OSx DartLang - 如何将工作区重置为 DartLang 编辑器?

java - Minecraft retrofit "Cannot instantiate the type"creatring CreativeTab

Java正则表达式截断时间戳值

java - 将一个元素压入具有多个堆栈的数组中的堆栈中将元素压入所有堆栈中

C++错误:undefined reference to `EnumProcesses@12

java - 如何使用应用程序属性和 pom 文件共享/传递变量

java - 在 Maven 项目中使用 OSGi 包的 ClassCastException

java - 在构建 "maven-plugin"包时如何使用 Proguard 混淆?

java - 开源 Linux 服务器项目