我在 Eclipse 中使用了 m2eclipse 插件,以便我可以导入 Maven 项目。该插件读取 pom.xml 并以 Eclipse 友好的方式整理项目中的依赖项,因此我不会查看大量损坏的引用和错误。
我使用 Eclipse 进行代码开发,但是我通常从命令行构建项目,例如“mvn clean install”。
不幸的是,当我这样做时,m2eclipse 检测到磁盘活动并尝试重建工作区。这会干扰命令行构建,有时会导致竞争条件。例如,命令行可能处于清理阶段但失败,因为它试图删除在工作区重建期间锁定的文件或目录。除了工作区重建非常慢之外,在失败的构建和浪费的 CPU 之间,我的构建过程比应有的时间长 2-3 倍。
不使用 Eclipse(例如使用 Netbeans)或禁用 m2eclipse 不是一个选项。除了这种行为,它是一个有用的插件。
所以我的问题是,如何阻止 m2eclipse 一直重建工作区?我可以调用手动刷新并以其他方式禁用此行为吗?
我是 Maven 的新手,正在尝试解决我有一组二进制库 (.jars) 的情况,我想将其包含在多个 Maven 管理的项目中。
这些库没有 pom.xml 文件,并且在任何 Maven 存储库中都不可用。
我应该如何设置 Maven / m2eclipse 以将这些库包含在我的其他项目中?我假设我需要设置一些 Maven“包装项目”来处理这些问题?
我在使用 m2eclipse 项目构建器在 Eclipse 3.6 中使用 Maven 构建 EJB EAR 时遇到问题。奇怪的是,手动构建(在命令行上或使用“Run as -> Maven build”)工作正常。我已将 Eclipse 设置为使用外部 Maven 2.2.1 安装。
错误信息如下:
Build errors for my-app; org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-ear-plugin:2.4.2:generate-application-xml (default-generate-application-xml) on project my-app: Failed to initialize ear modules
Run Code Online (Sandbox Code Playgroud)
因此,由于某些原因,我还无法确定 application.xml 描述符的生成显然失败了。
在错误日志视图中,我收到以下消息:
Unknown artifact type[test-jar]
Run Code Online (Sandbox Code Playgroud)
我在一个论坛中读到过,这可能是由缺少“test”范围的“test-jar”依赖引起的;但是,我对此进行了双重和三次检查,并且在我的 pom.xml 文件中找不到任何无作用域的“test-jar”依赖项。
我在 mvn help:effective-pom 中找到了以下条目:
<dependency>
<groupId>org.jboss.test</groupId>
<artifactId>jboss-test</artifactId>
<version>1.1.4.GA</version>
<exclusions>
<exclusion>
<artifactId>log4j</artifactId>
<groupId>apache-log4j</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- ... --->
<dependency>
<groupId>jboss.jms-integration-tests</groupId>
<artifactId>integration-mdb20</artifactId>
<version>1.0.1.GA</version>
</dependency>
<dependency>
<groupId>jboss.jms-integration-tests</groupId>
<artifactId>integration-mdb20-durable</artifactId>
<version>1.0.1.GA</version>
</dependency>
<dependency>
<groupId>jboss.jms-integration-tests</groupId> …Run Code Online (Sandbox Code Playgroud) 我正在使用M2E创建Maven原型项目(在本例中为简单的Web应用程序),目的是使用Maven部署到远程tomcat服务器。
我已将tomcat-maven-plugin添加到POM.XML文件,它似乎是正确的。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<server>localServer</server>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
当我在终端中输入“ mvn tomcat:deploy”时,它将成功部署。所以我知道我的settings.xml以及我的tomcat设置是正确的。
是否可以直接从Eclipse部署应用程序而无需通过终端。换句话说,是否可以将命令“ mvn tomcat:deploy”从Eclipse传递到Maven?
干杯
我正在使用 Maven(版本 2.2.1)和用 Groovy 编写的单元测试在 Eclipse(STS 版本 2.8.1.RELEASE)中开发一个 Java Web 项目。单元测试位于src/test/groovy 下。此外,我正在使用 Eclipse 的 m2eclipse 插件(1.0 版)和 Maven 中的 Gmaven 插件(1.3 版)。
在 Maven 中构建工作没有问题:groovy 文件被编译并作为测试执行。为了让单元测试在 Eclipse 中工作,我在项目中添加了 Groovy 特性,在配置构建路径下添加了文件夹 src/test/groovy ...并将输出文件夹设置为target/test-classes。
这一直有效,直到我在Maven -> Update Project Configuration...下更新项目配置。每次从 Eclipse 中的源文件夹中删除目录src/test/groovy后,我必须再次添加它并设置输出目录。
我是否遗漏了什么,或者为什么每次我更新项目配置时 Eclipse 都会删除我的源文件夹配置?
我的 GMaven 配置如下所示:
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.3</version>
<configuration>
<providerSelection>1.7</providerSelection>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud) 我有一个问题,关于我的日食的jdk/jre用法.我知道这个问题在这里被问了很多次,我研究了很长一段时间可能出错的问题.我实际上没找到任何东西,所以我会再问你一次.也许我错过了一些东西(如果是的话,我希望不要尴尬:)
我的问题是,当我运行mvn clean install时,我得到一个错误,说m2eclipse插件是"无法找到Javac编译器:C:\ Program Files\Java\jre6 ..\lib\tools.jar ".
我检查的第一件事是在eclipse中是否配置了正确的JRE.所以我切换到Window> Preferences> Java> Installed JREs并检查选中的jre是否是我的jdk文件夹中的jre.情况就是这样.
我检查了eclipse.ini并添加了一个-vw标志.它现在看起来像:
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vm
"%JAVA_HOME%\bin\javaw.exe"
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx384m
Run Code Online (Sandbox Code Playgroud)
%JAVA_HOME%已解析为C:\ Program Files\Java\jdk1.6.0_24.因为它包含一个空格我用引号包围了vw路径.为了检查路径是否真的正确,我试过了
C:\Windows\System32>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.6.0_24
Run Code Online (Sandbox Code Playgroud)
这告诉我这是正确的.我也尝试在启动eclipse时传递-vw选项.那么启动eclipse的命令就是这样
D:\Programs\eclipse\eclipse.exe -vm "%JAVA_HOME%\bin\javaw.exe"
Run Code Online (Sandbox Code Playgroud)
我还测试了当我使用%JAVA_HOME%符号时是否存在差异,或者我是否写了完整路径(它没有区别).
当我去帮助>关于Eclipse>安装细节>配置时,我得到的eclipse配置如下所示:
__wbp.gwt.useWebKit=true
awt.toolkit=sun.awt.windows.WToolkit
veclipse.application=org.eclipse.ui.ide.workbench
eclipse.buildId=M20120208-0800
eclipse.commands=-os
win32
-ws
win32
-arch
x86_64
-showsplash
-launcher
D:\Programs\eclipse\eclipse.exe
-name
Eclipse
--launcher.library
D:\Programs\eclipse\\plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110 502\eclipse_1406.dll
-startup
D:\Programs\eclipse\\plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.overrideVmargs
-exitdata
3e30_64
-product
org.eclipse.epp.package.java.product
-vm
C:\Program Files\Java\jdk1.6.0_24\bin\javaw.exe
eclipse.home.location=file:/D:/Programs/eclipse/
eclipse.launcher=D:\Programs\eclipse\eclipse.exe
eclipse.launcher.name=Eclipse …Run Code Online (Sandbox Code Playgroud) 在将Maven项目导入eclipse时是否有任何现有的m2e-extension来配置Eclipse Formatter?我们使用自定义checkstyle规则,m2eclipse为我们配置了Eclipse-CS-plugin.但另外我还要配置Eclipse Formatter ......
在eclipse M2E 1.2.0插件中,当我得到一个maven项目属性时,有一个生命周期映射对话框,这个对话框中的各个列是什么意思。我在网上搜索过解释,但没有找到任何清楚地解释各列含义的内容。

我在 Eclipse 中使用 Maven 来构建和部署代码。
选择时{Context Menu} > Run As,会出现几个Maven目标如下:

我知道如果我想创建自定义构建配置,我会单击“运行配置...”来创建自定义配置。
但是,似乎没有办法修改菜单上方便出现的配置。例如,您不能将配置文件添加到 #7“Maven 安装”。结果很乏味,因为您单击了大约 5 次以启动构建。
有什么方法可以将配置文件或其他目标添加到 #7 “Maven install” 构建或将自定义配置添加到上下文菜单中?
有没有办法使用键盘组合启动特定的构建配置?
我已经尝试过 IntelliJ 和 NetBeans,并且它们中的 Maven 集成在尝试区分基本 Maven 目标和更现实的目标和配置文件的自定义组合时似乎令人困惑。
我在标签中有一个带有此插件定义的父pom.xmlpluginManagement:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>default-bundle</id>
<phase>package</phase>
<goals>
<goal>bundle</goal>
</goals>
</execution>
<execution>
<id>create-source-manifest</id>
<phase>prepare-package</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
然后,我有实际项目的pom.xml尝试添加执行:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
</plugin>
Run Code Online (Sandbox Code Playgroud)
它导致错误:找到重复的捆绑软件执行。请删除您pom.xml中所有显式定义的包执行。
但是,如果我plugin在Eclipse中删除此标记并再次添加它,该错误将消失。
这是Eclipse M2E问题吗?还是这是一个实际的Maven问题?如果是这样,我该如何解决?我显然不能删除上面的处决。
我可以添加以下内容:
<executions>
<execution><id>default-bundle</id></execution>
<execution><id>create-source-manifest</id></execution>
</executions>
Run Code Online (Sandbox Code Playgroud)
但这对于“执行父pom中定义的所有内容”非常冗长,而且如果我想添加另一次执行,则新的执行不会被执行。
注意:请注意,它在M2E 1.12的Eclipse 2019-06中仍然被打破(我写这个问题时不知道我一年多以前拥有哪个Eclipse)。