Java 在maven构建中包括eclipse库

Java 在maven构建中包括eclipse库,java,eclipse,maven,m2eclipse,Java,Eclipse,Maven,M2eclipse,简单场景: 我有一个maven项目,包含一些maven依赖项(activiti框架),并在eclipse中添加了Widlfly 8.1.0运行时库 当然,如果我用Maven清理和构建,Maven在编译时不会考虑运行时,并且抱怨它找不到例如@ WebServices注释、HttpRequest类等 因此,为了构建我的项目,我必须运行任何maven目标并看到它失败,只是让maven下载所有依赖项,然后使用eclipses的构建过程构建项目,然后使用所有下载的maven依赖项和wildfly 8.1.

简单场景:

我有一个maven项目,包含一些maven依赖项(activiti框架),并在eclipse中添加了Widlfly 8.1.0运行时库

当然,如果我用Maven清理和构建,Maven在编译时不会考虑运行时,并且抱怨它找不到例如@ WebServices注释、HttpRequest类等

因此,为了构建我的项目,我必须运行任何maven目标并看到它失败,只是让maven下载所有依赖项,然后使用eclipses的构建过程构建项目,然后使用所有下载的maven依赖项和wildfly 8.1.0运行时,成功构建项目

然后,我只能运行maven install/deploy来创建.war,这是可行的,因为maven会找到一个由eclipse创建的已编译目标文件夹


在不将所有运行时JAR嵌入本地存储库或将wildfly安装添加为其他本地repo的情况下,我如何告诉maven或m2e插件将手动添加的库包含到maven编译步骤中?

您可能想要的是对
org.wildfly:wildfly spec api:8.1.0的“提供的”*-范围依赖关系(这是一个pom工件,包含wildfly提供给您的所有API/规范)

假设您打算在wildfly中部署应用程序(而不是以某种方式将wildfly嵌入您自己的main()中),那么您不需要依赖wildfly容器

*-注意,由于wildfly apec api是pom工件(而不是jar),因此您需要使用导入作用域而不是提供的。有关完整的指南,请参阅。要点是在依赖项管理中对pom设置导入作用域依赖项,然后您可以将提供的作用域依赖项设置在您使用的任何特定成员api/规范上(比如ejb3、jsf、bean验证或jpa),这些版本将取自spec-api-pom