Art*_*has 12 java eclipse build maven sts-springsourcetoolsuite
是Eclipse的 " 构建项目 "命令相同的Maven命令" MVN编译 "?两者基本上都做同样的事情吗?
如果是,那么为什么我在运行"mvn clean install"之后需要在STS中执行"Build Project"才能运行应用程序而没有任何问题?运行"mvn clean install"应该已经编译了项目.不应该刷新STS中的项目足以运行它吗?
如果否,则Eclipse构建不同,因为Java编译器实现了Java语言规范来构建类吗?但是下面的Apache Maven链接说默认编译器是javax.tools.JavaCompiler(顺便说一句,我使用的是Java 1.6).
Kri*_*ris 15
简短的回答是不,maven build和eclipse构建不一样.
基本上,eclipse有自己的构建方式,这与maven几乎没有关系.在最基本的层面上,Eclipse只使用自己的Java编译器(Eclipse JDT的一部分)进行Java编译.
对它们如何区别的精确答案很难给出,情况非常复杂,而且它完全取决于您安装的东西(Eclipse插件).
为了获得尽可能接近的近似值,以便Eclipse做什么,就像maven在命令行上所做的那样,你应该安装m2e(maven eclipse工具).
M2E尝试使Eclipse IDE的行为"尽可能地模仿"maven的命令行行为.它通过配置您的eclipse项目来实现.例如,根据maven poms设置源文件夹,类路径等.如果您的poms不做"花哨"的事情(即使用一些不那么常见的maven插件),这非常有效.
当你在你的pom中使用maven插件做'特殊'的事情,比如可能生成一些代码,或者其他什么,那么m2e有一个插件机制,允许maven插件作者定义一个相应的eclipse插件,"教eclipse"如何做一样.
这可能会变得毛茸茸,因为并非所有的maven插件都有相应的Eclipse插件,即使它们这样做,它们也不会自动安装到您的Eclipse实例中.
如果你没有插件来"教eclipse"关于你的一些pom的插件.M2e会给你一个关于生命周期映射的错误.这表明m2e和maven命令行可能不会为您的项目"做同样的事情",并由您决定以某种方式解决它(例如,通过安装相应的Eclipse'项目配置器').
我不知道 Maven,但 Eclipse 构建与某些项目的 ANT 构建不同,所以 Maven 应该是这样。Eclipse 有其自己的内部增量构建机制。
Eclipse 内部构建(Eclipse 的 Build Project 或 Build All 或 Clean)和 Maven/Ant 构建基本上执行相同的操作,这意味着它们都将编译源代码文件。现在一个明显的区别是 Eclipse 内部构建不会为您生成 EAR、WAR 等文件,而您可以使用 ANT/Maven 来生成这些文件。
如果 ANT/Maven 使用相应的元素指定类路径,并且在 Eclipse 中通过配置构建路径来完成相同的想法,以便当 Eclipse 进行内部构建时,可以引用那些 JAR 或运行时库。
关于编译器,当您使用 Eclipse 构建时,它将使用 Eclipse 打包的 Java 版本的内部 javac 编译器。您可以使用“窗口”>“首选项”>“Java”>“编译器”找到 Java 版本。而如果是您自己的项目构建,它将引用您的 JAVA_HOME。
| 归档时间: |
|
| 查看次数: |
16355 次 |
| 最近记录: |