maven打包后class文件改变了,部署出问题
本人使用的MyEclipse8.5,一个SpringMVC+MyBatis的项目,使用maven的packge打包之后,直接部署到tomact下报错。
后来发现packge命令产生的编译class文件和部署包里的不一样(个人认为是先编译,再将编译后的拷贝到部署文件夹,结果拷贝过去后文件就变了),用Beyond Compare比较发现大小都一样(有的大一些,有的小一些)。直接将编译的class丢到部署包里覆盖,OK,现在没问题了。
google下,有人说是filter的原因,导致了转码,但是看了下filter是针对resource的。我的部分pom文件如下:
<build> <finalName>at</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <filteringDeploymentDescriptors>false</filteringDeploymentDescriptors> <webappDirectory>target/${name}</webappDirectory> <warSourceDirectory>WebRoot</warSourceDirectory> <warSourceExcludes>WEB-INF/lib/log4j-${log4j-version.version}.jar</warSourceExcludes> <webResources> <resource> <directory>src/main/java</directory> <includes> <include>*.java</include> </includes> <filtering>false</filtering> </resource> </webResources> </configuration> </plugin> </plugins> <defaultGoal>compile</defaultGoal> </build>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
初步感觉是war-plugin配置有问题。你是不是还开着其它ide,有可能这个插件把ide编译.class当作资源copy到war中导致。
回复
我发的这个war-plugin配置是不对的,resource那一节是我后来加的,的确会直接copy java源文件当resource文件,去掉那一段还是老问题。谢谢帮忙!
warSourceDirectory是WebRoot,里面是不是本来就有一个classes,如果有删除上maven编译打包生成 mvn clean package
回复
的确是此问题,把输出目录(outputDirectory)设到WebRoot/WEB-INF/classes后,问题解决。在此特别感谢!
部署的错误是什么?
部署的错误是什么?