maven打包后class文件改变了,部署出问题

柳倾城 发布于 2012/06/13 13:54
阅读 3K+
收藏 1

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

      本人使用的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>

加载中
0
NoahX
NoahX
部署的错误是什么?
0
柳倾城
柳倾城

引用来自“肖国颖”的答案

部署的错误是什么?
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory';
...
Caused by: java.lang.NoClassDefFoundError: Interceptor;
...
个人觉得这个错误误导人。只要把编译的class文件覆盖到打包的文件中,就没错误了。
柳倾城
柳倾城
回复 @肖国颖 : 的确是此问题,把输出目录(outputDirectory)设到WebRoot/WEB-INF/classes后,问题解决。在此特别感谢!
NoahX
NoahX
warSourceDirectory是WebRoot,里面是不是本来就有一个classes,如果有删除上maven编译打包生成 mvn clean package
柳倾城
柳倾城
回复 @肖国颖 : 我发的这个war-plugin配置是不对的,resource那一节是我后来加的,的确会直接copy java源文件当resource文件,去掉那一段还是老问题。谢谢帮忙!
NoahX
NoahX
初步感觉是war-plugin配置有问题。你是不是还开着其它ide,有可能这个插件把ide编译.class当作资源copy到war中导致。
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部