Maven没有在Eclipse中将依赖项复制到WEB-INF / lib

时间:2015-01-01 23:30:18

标签: java google-app-engine maven java-ee classpath

我意识到在StackOverflow上已经多次询问过非常类似于相同问题的任何问题,但大多数情况(如果不是全部)似乎最终都有不同的解决方案。

我已经尝试了几乎所有我从这里和其他地方发布的类似问题找到的东西,但我仍然无法让Maven将依赖JAR放在WEB-INF / lib中。

最奇怪的是每次我运行Maven时 - >更新项目,Maven似乎将类输出文件夹重新配置为/target/classes,而不是Google网络应用插件所需的/war/WEB-INF/classes

在构建路径中Maven依赖项下的所有内容都正确显示,但WEB-INF / lib中没有显示任何内容,因此应用程序在运行时因ClassNotFoundExceptions而失败。

以下是pom.xml的相关部分:

<packaging>war</packaging>
<build>
    <sourceDirectory>src</sourceDirectory>
    <resources>
        <resource>
            <directory>src</directory>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.5</version>
            <configuration>
                <webXml>war/WEB-INF/web.xml</webXml>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>com.google.appengine.tools</groupId>
        <artifactId>appengine-gcs-client</artifactId>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
    </dependency>
</dependencies>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.google.appengine.tools</groupId>
            <artifactId>appengine-gcs-client</artifactId>
            <version>RELEASE</version>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.3.1</version>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

我是否需要在M2E设置中配置?我需要使用maven终端命令吗?除了手动管理所有依赖项之外,我真的不知道该做什么(请...否)。

1 个答案:

答案 0 :(得分:2)

<build>
    <outputDirectory>war/WEB-INF/classes</outputDirectory>
</build>

将它添加到你的pom。每次进行Maven更新时,它都会停止输出目录的更改。