Maven提供了范围和eclipse运行时类路径

时间:2012-04-27 14:31:44

标签: eclipse maven classpath m2e

我的m2e插件的eclipse类路径出了问题。 我有一个项目依赖于我工作区中的其他项目。我已经将这些依赖项添加为提供范围的maven依赖项。我希望范围可以做到以下几点: 提供编译的依赖项,但为运行时类路径排除它们。 因为在运行时,应该从文件夹内的jar中加载这些类。

但是eclipse类路径包含了我在项目pom中提供的每一个依赖项。 Eclipse似乎忽略了提供的范围。 有没有办法从运行时类路径中排除它们?

此致

3 个答案:

答案 0 :(得分:1)

如果您希望“为编译提供依赖项但从运行时类路径中排除”,则需要使用“提供的”依赖项范围(Maven术语)而不是“编译”范围, Maven默认使用。

答案 1 :(得分:0)

m2e正在这里正常工作。我认为你误解了'运行时'的含义。实际上,您的项目确实依赖于编译和运行时的其他项目,当您使用Maven构建它时,POM将反映出这一点。如果您计划将项目部署到例如,则只能使用“提供”范围。一个提供依赖项的应用程序服务器。

答案 2 :(得分:0)

我遇到了与maven-war-plugin 2.2版相同的问题,请使用maven-war-plugin ver。 2.3问题已经消失,至少使用 mvn package 命令。

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>

            <configuration>
                <webxml>WebContent/WEB-INF/web.xml</webxml>
                <packagingExcludes>jsp-api-6.0.36.jar,el-api-6.0.36.jar,servlet-api-6.0.36.jar</packagingExcludes>              

            </configuration>
        </plugin>