日记 - 记录idea配置对war打包的影响

环境:maven3.3.9,idea2016,web工程,windows7

  我的项目原本为main方法启动,加载springContext,加载dubbo,开启socketServer。后来为了线上统一标准,改为web项目。

  maven配置如图:


这里最重要的就注意<packaging>标签里的值为war,如果是jar,那么使用mvn package的时候就会打jar包



 这里两个plugin,一个用于编译,一个用于打包。编译的需要指定jre版本,由于1.8的编译和1.8之前有较大不同,所以这里尤其需要注意。

  那么我的问题并没出在配置上。而是出在idea的配置上,因此无法追根溯源。问题的原因确定来自下面这张截图。



 war包需要web.xml文件及其路径,但是提示找不到(Error assembling WAR: webxml attribut is required)。

然后在反复的查找中,我看到了我的web配置,并在尝试后解决了上图所示的问题。前面有说过,这本来是一个main方法启动的项目。我添加web的方式是通过idea添加的,添加方式如下图。



  问题就出在了这个添加的web的默认配置上。默认配置的地址webapp和我的web.xml文件不再一起,因此找不到。下图是已经修正过的配置了,需要注意标红的地址。



 

  另外多说一件事,关于该配置为什么会影响maven打包。我之前一直在思考,idea里的配置对项目的影响。因为我个人工作过程中遇到多次由idea配置引起的问题。如果不会用或者不了解,真的找不到问题在哪里。

  maven打war包后,里面会有个META-INF文件夹,这个文件夹里有个MANIFEST.MF文件。这个文件其实就是这个war包里各个class文件和配置文件的路径清单。这个文件是由maven生成,但却是由idea配置的。


 

猜你喜欢

转载自lcl088005.iteye.com/blog/2379455
今日推荐