java - Eclipse 中的设置是否会传播到 Maven?

标签 java eclipse maven gwt m2eclipse

我已经将 Maven 项目导入到 Eclipse 中,但我仍然不确定 Maven 和 Eclipse 是如何真正协同工作的。

例如,当我将源文件夹从一个模块复制并粘贴到另一个模块以尝试解决 Can Google App Engine Modules share source code just like Maven Modules? 时,Eclipse 只是更改了我的 .classpath 文件。 :

当我复制/粘贴我想要跨模块/项目复制的源代码时,Eclipse 将其添加到 .classpath 中:

<classpathentry kind="src" path="/nbsocialmetrics-backend"/>

不过 Eclipse 没有对我的 POM.xml 文件进行任何更改。 Eclipse 似乎对它为我所做的 .classpath 更改感到满意,我没有任何相关项目/模块的任何编译警告。但是我项目顶层的 mvn clean install 提示缺少很多依赖项。

我是否正确地假设诸如 mvn clean install 这样的命令行 Maven 命令不会查看 Eclipse .classpath 文件?

Maven不是只依赖以下内容吗?

  1. POM.xml 文件
  2. 存储库,例如 Maven 中央存储库
  3. 传递给 mvn 的命令行参数
  4. 源代码/资源/等。 (您想要构建的内容,而不是 .classpath 等元数据)

如果我的理解是正确的,为什么 Eclipse 会允许我对我导入的 Maven 项目进行不正确的更改?哪些类型的 Eclipse 更改实际上是安全的——换句话说,当我在命令行执行 mvn clean install 时,我在 Eclipse 中所做的哪些类型的更改实际上会得到反射(reflect)?

作为另一个示例,我尝试在我的一个模块中使用 Eclipse 的 WindowBuilder 编辑器来处理某些 GWT(J2EE/Maven 意义上的“模块”,而不是 GWT 意义上的“模块”)。因为我希望确保我有正确版本的 WindowsBuilder 来解决 Error "No GWT module found" for Maven project imported into Eclipse ,我应该查看 Eclipse 插件设置还是 Maven POM.xml 设置? Eclipse,在这种情况下,对吧?

感谢您帮助我理解。

最佳答案

Am I correct in assuming a command-line Maven command such as mvn clean install won't look at the Eclipse .classpath file?

是的,Maven不使用这个文件。该文件仅由 Eclipse 用于保存有关项目的信息,即源目录及其相应的类或输出目录以及类路径条目。

Maven 依赖于您提到的资源:POM 文件、存储库等

why would Eclipse allow me to make changes that aren't correct for a Maven project I've imported?

即使项目是 Maven 项目,Eclipse 仍然允许用户以可能不遵循标准 Maven 约定的方式更改项目的build设置。例如,模块中的默认源位于 src/main/java 下,但没有什么可以阻止您右键单击该模块,并在构建路径设置中添加不遵循的源文件夹这个标准(不用说这不是一件好事)。

Eclipse 中的 Maven 项目只是一个配置为使用 Maven 插件的项目,该插件支持使用 Maven 进行依赖项管理(例如,它也可以同时是一个 Groovy 项目)。

what types of changes that I make in Eclipse will actually get reflected at the time I go to execute mvn clean install at the command line?

就 Maven 而言,所有信息都存在于 POM 中。因此,只有对 POM 进行的更改(添加依赖项或插件)才会影响从命令行使用 Maven 的行为。

As I'm looking to ensure I have the right version of WindowsBuilder to resolve Error "No GWT module found" for Maven project imported into Eclipse, should I be looking at Eclipse plugin settings or Maven POM.xml settings? Eclipse, in this case, right?

是的,应该是 Eclipse 而不是 Maven。 Maven 插件与 WindowBuilder 功能无关。项目可以是 Maven 项目,同时可以配置为 GWT 项目。

关于java - Eclipse 中的设置是否会传播到 Maven?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27388713/

相关文章:

Eclipse C++ : How do you quickly switch between header and implementation files?

java - 哪个 Eclipse 版本与 Tomcat 10 兼容,或者我应该返回 Tomcat 9?

android - 在哪里可以了解有关 Android 中使用的依赖项的更多信息

java - 配置maven插件cxf-codegen-plugin以忽略安全问题

java - System.out超链接?

java - 如何计算元素并在 Java 8 中先查找

java - Spring 数据 Cassandra @Indexed 注解

java - eclipse 插件中的外部 jar

maven - 在嵌入式 Weld EE 容器中启动时 Arquillian 未找到 HTTPContext

java - JSON 异常 - 所需参数没有值