我是maven的新手。我受益的主要功能是自动依赖管理。标准化的目录结构似乎也很好,但Eclipse也有一个标准的目录结构。目录结构现在独立于Eclipse,但现在它依赖于maven。好的,我知道,这两个程序在这一点上看起来都非常灵活。
我不太确定,如果maven更专注于服务器或客户端系统,例如有一个功能/插件来生成一个项目网站。这在服务器系统上最有意义吗?
如何将maven与版本控制系统(VCS)集成,例如SVN?我想到了一个系统,其中有一个存储库,并且总是有最新的网站,下载部分用于开发工件。
如何将maven与Eclipse集成?我现在正在使用m2eclipse和WTP集成。没关系,但它有一些我不喜欢的行为,例如:
如果我详细了解它,也许我可以修复它们。我的WTP扩展有一个或多或少的严重问题。我认为重要的是,WTP扩展名为not officially supported,可能没有生产质量。
我知道还有另一个插件可以将maven集成到Eclipse中。我还没试过。它更好吗?
我认为,maven可能对更多领域有用。例如,可以扩展目录结构以保持例如要求,规范和建模工件。我认为只有标准化才有效。所有文件的修订控制也都很好。
很多事情,可以集成以支持完整的软件开发过程。也许这是不现实的,以获得所有这些功能。目前,Eclipse与WTP和VCS集成的集成对我来说具有最高优先级。
有什么建议吗?提前谢谢。
答案 0 :(得分:1)
一些随机点可以帮助你朝着正确的方向前进:
标准化的目录结构似乎也很不错,但Eclipse也有一个标准的目录结构
src
旁边的代码中,而其他人则将其放在单独的目录中,如tests
或test
。您可以根据需要配置任意数量,但Maven跟随有defaults几乎所有人都遵循:src/main/java
src/test/java
src/main/resources
中运行所需的资源
src/main/config
src/main/java
的已编译Java类,但不包含来自src/test/java
src/main/config
的配置文件不会进入JAR / WAR(如果有的话,有点会破坏配置文件的目的)src/test/resources
的测试资源不会进入JAR / WAR 我不太确定,如果maven更专注于服务器或客户端系统,例如有一个功能/插件来生成一个项目网站。
这在服务器系统上是否最有意义?
不是真的。文档对于任何项目都至关重要,特别是对于客户端系统。
如果我详细了解它,也许我可以修复它们。我的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可能对更多领域有用。例如,可以扩展目录结构以保持例如要求,规范和建模工件。我认为只有标准化才有效。所有文件的修订控制也都很好。
您可以随意在项目树中添加任何内容。很多人都在这样做,并引用网站上的文档。可能性是无穷无尽的。