如何将maven以正确的方式集成到Eclipse中并进入软件开发过程?

时间:2010-08-30 20:26:46

标签: eclipse version-control maven-2 m2eclipse eclipse-wtp

我是maven的新手。我受益的主要功能是自动依赖管理。标准化的目录结构似乎也很好,但Eclipse也有一个标准的目录结构。目录结构现在独立于Eclipse,但现在它依赖于maven。好的,我知道,这两个程序在这一点上看起来都非常灵活。

我不太确定,如果maven更专注于服务器或客户端系统,例如有一个功能/插件来生成一个项目网站。这在服务器系统上最有意义吗?

如何将maven与版本控制系统(VCS)集成,例如SVN?我想到了一个系统,其中有一个存储库,并且总是有最新的网站,下载部分用于开发工件。

如何将maven与Eclipse集成?我现在正在使用m2eclipse和WTP集成。没关系,但它有一些我不喜欢的行为,例如:

  • 当我生成新的Java项目时,JRE版本设置为1.4。我必须手动将其重置为1.6 /工作空间默认值。
  • 构面配置不稳定。某些配置必须手动完成并按特定顺序完成。

如果我详细了解它,也许我可以修复它们。我的WTP扩展有一个或多或少的严重问题。我认为重要的是,WTP扩展名为not officially supported,可能没有生产质量。

我知道还有另一个插件可以将maven集成到Eclipse中。我还没试过。它更好吗?

我认为,maven可能对更多领域有用。例如,可以扩展目录结构以保持例如要求,规范和建模工件。我认为只有标准化才有效。所有文件的修订控制也都很好。

很多事情,可以集成以支持完整的软件开发过程。也许这是不现实的,以获得所有这些功能。目前,Eclipse与WTP和VCS集成的集成对我来说具有最高优先级。

有什么建议吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

一些随机点可以帮助你朝着正确的方向前进:

  

标准化的目录结构似乎也很不错,但Eclipse也有一个标准的目录结构

  • Eclipse没有“标准”目录结构。例如,有些人将其单元测试放在src旁边的代码中,而其他人则将其放在单独的目录中,如teststest。您可以根据需要配置任意数量,但Maven跟随有defaults几乎所有人都遵循:
  • src/main/java
  • 中的来源
  • src/test/java
  • 中进行测试
  • src/main/resources中运行所需的资源
    • 语言文件
    • Spring配置文件
  • 运行测试所需的资源
    • 金色结果
    • src/main/config
    • 中配置文件
  • Eclipse是一个IDE,Maven是一个构建的构建管理工具
  • 例证:如果你要求Eclipse构建一个JAR / WAR,你必须手动告诉它要包含什么以及在哪里。因为您将文件放在Maven的默认值中,所以您会得到以下内容:
    • JAR / WAR包含来自src/main/java的已编译Java类,但不包含来自src/test/java
    • 的Java类
    • 来自src/main/config的配置文件不会进入JAR / WAR(如果有的话,有点会破坏配置文件的目的)
    • 来自src/test/resources的测试资源不会进入JAR / WAR
  • 如果您决定构建一个程序集(Maven代表您可以在您的网站上发布包含文档,源代码,二进制文件等的代码),它可以生成JAR,配置文件和{{ 1}}成ZIP文件。
  

我不太确定,如果maven更专注于服务器或客户端系统,例如有一个功能/插件来生成一个项目网站。

是的,Maven site plugin

  

这在服务器系统上是否最有意义?

不是真的。文档对于任何项目都至关重要,特别是对于客户端系统。

  

如果我详细了解它,也许我可以修复它们。我的WTP扩展有一个或多或少的严重问题。我认为重要的是,WTP扩展不受官方支持,可能没有生产质量。

因为Maven通过m2eclipse插件与Eclipse的集成并不完美,所以我实际上不会将它用于WTP项目。我使用Maven Eclipse plugin生成Eclipse项目文件,然后将项目作为常规Eclipse项目导入。缺点是必须在对项目进行任何重大更改后重新运行Eclipse项目文件。

  

所有文件的版本控制也很好。

这不是Maven,也不是任何构建管理工具。那是你的SCM,Subversion或其他什么。

  

当我生成新的Java项目时,JRE版本设置为1.4。我必须手动将其重置为1.6 /工作空间默认值。

您可以设置through Maven

  

也许这是不现实的,以获得所有这些功能。目前,Eclipse与WTP和VCS集成的集成对我来说具有最高优先级。

m2eclipse插件和朋友最适合简单的Java Maven项目。就个人而言,我使用Maven eclipse插件为任何Web,EJB等项目生成Eclipse项目。

正如前面提到的那样,有一些缺点,但是你所提到的好处,包括依赖管理,超过了他们,恕我直言。

当然,配置不当的Maven项目仍然是一个配置不当的项目。这不是魔术。 :)

答案 1 :(得分:1)

  

目录结构现在独立于Eclipse,但现在它依赖于maven。好的,我知道,这两个程序在这一点上看起来都非常灵活。

是的,它们都很灵活,所以我们可以弯曲一个或另一个。但是,如果我必须选择一个布局,我会选择IDE不可知的一个,即Maven布局,我会坚持默认设置,以尽量减少工作量,因为它们是众所周知的(所以任何熟悉Maven的人都知道在哪里找东西)。如果有人想使用IntelliJ IDEA或NetBeans,因为他觉得它更有效率,他可以做到。换句话说,我认为使用Eclipse布局没有任何好处。

  

我不太确定,如果maven更专注于服务器或客户端系统,例如有一个功能/插件来生成一个项目网站。这在服务器系统上是否最有意义?

Maven可用于开发人员计算机上的本地构建,用于持续集成计算机上的集中构建。生成网站,部署工件等通常在中央服务器上完成。

  

如何将maven与版本控制系统(VCS)集成,例如SVN?我想到了一个系统,其中有一个存储库,并且总是有最新的网站,下载部分用于开发工件。

我真的不明白问题的第一部分。你想如何将Maven与SVN完全集成(有maven-release-plugin,但我不确定这是什么问题)?对于第二部分,传统方法是使用持续集成服务器在VCS发生更改后触发构建,并将创建的工件部署(在maven意义上)到“公司存储库”。许多人使用Hudson作为CI服务器。

  

当我生成新的Java项目时,JRE版本设置为1.4。我必须手动将其重置为1.6 /工作空间默认值。

那是因为maven项目本身没有配置为使用1.6级别(Eclipse配置

派生来自POM,这是有意义的)。您必须为1.6配置maven编译器插件。这是一种方法(plenty上有previous questions this topic}:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>2.3.1</version>
  <configuration>
    <source>1.6</source>
    <target>1.6</target>
  </configuration>
</plugin>

然后通过右键单击然后 Maven&gt;更新Eclipse下的项目配置。更新项目配置

  

Facet配置不稳定。有些配置必须按照特定的顺序完成。

它们适用于我,而且它们来自您的POM 派生(例如,来自web.xml的版本。)

  

我的WTP扩展存在或多或少的严重问题。我认为重要的是,WTP扩展不受官方支持,可能没有生产质量。

咦?你在哪里读到这个?适合我的webapps工作正常。

  

我知道还有另一个插件可以将maven集成到Eclipse中。我还没试过。它更好吗?

我没有使用Eclipse IAM的经验。但是m2eclipse你有什么问题?

  

我认为,maven可能对更多领域有用。例如,可以扩展目录结构以保持例如要求,规范和建模工件。我认为只有标准化才有效。所有文件的修订控制也都很好。

您可以随意在项目树中添加任何内容。很多人都在这样做,并引用网站上的文档。可能性是无穷无尽的。