据我所知,Eclipse中的新M2E具有可插拔连接器,可帮助根据项目导入时在POM中看到的内容来配置Eclipse项目.
我也相信(大多数情况下)这些连接器在需要时(按需)自动安装.我一直在使用它们取得了一些成功.最近我手动安装了M2E-WTP连接器,因为我想尝试一下.
我安装了它 Eclipse->Preferences->Maven->Discovery,我也发现了一堆额外的连接器.但是发现窗口似乎只显示了你没有安装过的窗口.
但我怎么知道我安装了哪些?
我在Eclipse Indigo下创建了maven-archetype-quickstart的简单项目,然后我去了pom.xml gui编辑器,在依赖项选项卡中通过搜索在相应的对话框中添加了对log4j-1.2.16的依赖.
现在我的pom.xml包含标签
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<type>bundle</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但Eclipse强调了第一个<dependency>标签,并说Missing artifact log4j:log4j:bundle:1.2.16.
为什么?
Eclipse的Maven插件是m2e - Maven Integration for Eclipse版本1.0.100.20110804-1717
我正在使用Eclipse 3.7.2 + Android + Maven + m2e,我有一个问题,通过Maven包含的Android库作为apklibs.我用两个项目mvntest1(主项目)和mvntest2(我的库项目)构建了一个测试场景.的pom.xml的是该文本之后包括在内.
到现在为止还挺好.我可以通过控制台构建mvntest2$ mvn install而不会出现任何错误.因此,我在我的本地maven存储库(~/.m2/repository/mvntest2/mvntest2/0.0.1-SNAPSHOT/mvntest2-0.0.1-SNAPSHOT.apklib)中有一个apklib .
但是:包括不起作用.Eclipse不包含mvntest1中mvntest2的类等.我已经清理,更新了配置和依赖项,没有任何帮助.
我究竟做错了什么?请帮忙.如果缺少某些信息,请问.
======= mvntest1/pom.xml =====
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mvntest1</groupId>
<artifactId>mvntest1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>apk</packaging>
<name>mvntest1</name>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>2.1.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mvntest2</groupId>
<artifactId>mvntest2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>apklib</type>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile>
<assetsDirectory>${project.basedir}/assets</assetsDirectory>
<resourceDirectory>${project.basedir}/res</resourceDirectory>
<nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory>
<sdk>
<platform>7</platform>
</sdk>
<deleteConflictingFiles>true</deleteConflictingFiles>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
<extensions>true</extensions> …Run Code Online (Sandbox Code Playgroud) 我有一个带有两个Maven项目"foo"和"bar"的git存储库.克隆回购的结构如下:
myrepo
.git
foo
pom.xml
bar
pom.xml
Run Code Online (Sandbox Code Playgroud)
我想要的是
我的工作区中有两个项目"foo"和"bar",具有maven性质和工作团队菜单.我正在使用m2e 1.0.0运行Eclipse 3.7.
我尝试了以下方法:
导入 - >从SCM查看maven项目
这会将repo克隆到我的工作区文件夹中的一个新文件夹中并导入这两个项目,但是没有连接到git(Team菜单通常是空的).
从Git导入 - >项目
使用此选项,我只能将整个仓库作为单个常规项目导入(使用工作团队菜单).如果我然后使用"导入 - >现有的maven项目",则导入项目foo和bar但没有工作的Team菜单.
是否可以从带有工作团队菜单的git仓库导入多个项目?
我有一种情况,我需要一个包含Java源的文件夹,用作树结构中"彼此相邻"的几个maven项目的源文件夹.由于maven项目的依赖性差异,我不能创建包含源的编译版本的工件,但是除了src/main/java之外,还需要让每个项目将其视为源文件夹.
显然,Maven可以通过添加位于"../foo/src"中的另一个源文件夹来轻松完成此操作,但是m2e拒绝这样做,为了使我们能够很好地工作,我需要让它在Eclipse中运行.
我怎么会有这样的结构:
/common/src
/a/pom.xml (add source folder ../common/src)
/a/src/main/java/...
/b/pom.xml (add source folder ../common/src)
/b/src/main/java/....
Run Code Online (Sandbox Code Playgroud)
并让它在Eclipse中工作?
(注意:我知道http://dev.eclipse.org/mhonarc/lists/m2e-users/msg01988.html - 但是,从2011年开始)
如果我根据没有原型Maven项目创建默认空Eclipse,它将基于J2SE-1.5.

我将手动更改构建路径条目和代码合规性.
为什么?
如何使它成为其他?
我从q4e Helios切换到Indigo m2e插件,我的Maven 2项目不再有效.我有一个ROO生成的Spring MVC项目.
这就是我得到的:
Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:aspectj-maven-plugin:1.0:test-compile (execution: default, phase: process-test-sources)
Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:aspectj-maven-plugin:1.0:compile (execution: default, phase: process-sources)
Run Code Online (Sandbox Code Playgroud)
非常感谢任何见解.谢谢.
我刚刚安装了m2e,安装了m2e.
然后,我创建了一个新的Maven项目并决定我想要log4j,所以我打开了pom.xml,单击了Dependency选项卡,单击Add ...按钮并输入log4j.
零结果.它找到的唯一东西是junit(它似乎是自动添加到具有quickstart原型的项目中).请注意,我可以手动添加log4j依赖项,它可以正常工作,但我发现搜索功能非常方便!
我是一个Maven的初学者,虽然我让m2e在Indigo工作没问题.所以我想我可能忘了设置一些东西?
我有一个以这种方式构建的Web应用程序:
A.jar - > B.war - > C.war
我正在使用Eclipse Juno,而WTP版本是1.1.A.jar是一个工作空间实用程序项目,由B.war包含.B.war是一个战争项目,由C.war作为叠加层包含在内.这就是我这样做的方式:
<dependency>
<groupId>com.projects</groupId>
<artifactId>B</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
之后,我将C项目部署到Tomcat服务器.如果我手动将Maven生成的war部署到Tomcat,那就像魅力一样,因为A.jar包含在WEB-INF/lib中.然而,当我让m2e-wtp进行部署时,问题出现了,因为它正在正确地进行覆盖,但不包括A传递依赖.我尝试将它作为一个pom包括在内,因为我在这里读到了一些地方,但我得到了相同的结果.
<dependency>
<groupId>com.projects</groupId>
<artifactId>B</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.projects</groupId>
<artifactId>B</artifactId>
<version>1.0-SNAPSHOT</version>
<type>pom</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我正在使用m2e(1.2)和m2e-wtp(0.16)的最新版本,并使用Maven配置更新我的项目.
它是m2e-wtp问题还是我必须以其他方式组织我的项目?
EDITED
我注意到m2e-wtp配置存储在Eclipse的project./settings/org.eclipse.wst.common.component文件中.这就是我寻找战争的方式:
<dependent-module deploy-path="/"
handle="module:/overlay/prj/B?includes=**/**&excludes=META-INF/MANIFEST.MF">
<dependency-type>consumes</dependency-type>
</dependent-module>
<dependent-module deploy-path="/"
handle="module:/overlay/slf/?includes=**/**&excludes=META-INF/MANIFEST.MF">
<dependency-type>consumes</dependency-type>
</dependent-module>
Run Code Online (Sandbox Code Playgroud)
正如我所看到的,war依赖项设置为consume,而jar依赖项设置为使用.
发布的m2e-wtp版本0.17似乎没有解决它.
编辑(2013-08-30)
今天我回到了同样的问题.即使我已经安装了Eclipse kepler,最新的稳定版本的WTP开箱即用,这个问题似乎仍然存在.我以为它已经解决了,但我显然错误地检查了......
我将guava 17.0添加到我的pom.xml中,Eclipse自动重建项目.
Ran mvn dependency:resolve,maven显示com.google.guava:guava:jar:17.0:compile在已解析文件列表中.
但是当我在Eclipse中尝试自动完成时com.google.g,它会说"没有默认提议".我之前在我的pom.xml中添加了依赖项,运行mvn dependency:resolve并且Eclipse立即将它们选中.这次有什么不同?
到目前为止我已尝试过以下内容:
mvn clean 其次是 mvn install我可以看到target/<projname>-1.0-SNAPSHOT/WEB-INF/lib/guava-17.0.jar.
我的配置:
eclipse ×10
m2e ×10
maven ×9
java ×3
eclipse-wtp ×2
m2eclipse ×2
maven-2 ×2
android ×1
eclipse-juno ×1
git ×1
ide ×1
log4j ×1
maven-3 ×1
spring-roo ×1