Java Maven不在Eclipse中将依赖项复制到WEB-INF/lib
我意识到关于StackOverflow的问题已经被问了很多次了,但大多数(如果不是全部的话)似乎都有不同的解决方案 我已经尝试了从这里和其他地方发布的类似问题中找到的几乎所有东西,但是我仍然无法让Maven将依赖项jar放在WEB-INF/lib中 最奇怪的是,每次我运行Maven->Update项目时,Maven似乎都会将类输出文件夹重新配置为Java Maven不在Eclipse中将依赖项复制到WEB-INF/lib,java,google-app-engine,maven,jakarta-ee,classpath,Java,Google App Engine,Maven,Jakarta Ee,Classpath,我意识到关于StackOverflow的问题已经被问了很多次了,但大多数(如果不是全部的话)似乎都有不同的解决方案 我已经尝试了从这里和其他地方发布的类似问题中找到的几乎所有东西,但是我仍然无法让Maven将依赖项jar放在WEB-INF/lib中 最奇怪的是,每次我运行Maven->Update项目时,Maven似乎都会将类输出文件夹重新配置为/target/classes,而不是Google WEB app插件所需的/war/WEB-INF/classes 所有内容都在构建路径中的Maven
/target/classes
,而不是Google WEB app插件所需的/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>
战争
src
src
**/*.爪哇
maven编译器插件
3.1
1.7
1.7
org.apache.maven.plugins
maven战争插件
2.5
war/WEB-INF/WEB.xml
真的
com.google.appengine.tools
appengine gcs客户端
com.google.code.gson
格森
com.google.appengine.tools
appengine gcs客户端
释放
进口
com.google.code.gson
格森
2.3.1
进口
M2E设置中是否有我必须配置的内容?我需要使用maven终端命令吗?除了手动管理所有依赖项(请…不),我真的不知道该怎么办。
war/WEB-INF/classes
把它加到你的pom里。每次您进行Maven更新时,它都会停止更改输出目录。您似乎没有按照中的说明操作,因为您没有指定appengine Maven插件配置。我一定错过了。我在下面添加了它,但它并没有解决问题。由于某些原因,Maven->Update Project仍然会恢复使用/target/classes。您的项目可能没有正确地为Maven设置。检查您的web项目-
Properties>Deployment Assembly
中是否设置了要部署到web-INF/lib
的Maven依赖项。这个问题现在有点老了,但我非常确定这是正确的解决方案,iirc。
<build>
<outputDirectory>war/WEB-INF/classes</outputDirectory>
</build>