IDEA打包war和maven打包war问题

2018-10-09 / 16 阅读 / Java

叙述:

正常开发中,不管idea或是eclipse启动web服务,各种百度或是配置一般都能解决问题。这次遇到的问题比较特殊,项目使用maven,但是也使用了本地lib,IDE中是一切正常,不行Add as libs 等操作都能解决。坑就坑在打war包时,本地lib打包一直无法打包,而后面打包进去了也出现启动错误。

IDEA打包war

idea工具打包war其实比较简单的

执行以上操作,target下即可找到war包,maven依赖或是本地依赖都只要添加了,都会被打包到WEB-INF/lib下。

maven打包war

maven打包war与使用工具打包还是不一样了,工具一般比较智能,默认配置都是配好了。而使用maven打包,则需要懂一点maven的配置,否则坑还是蛮多的。

我这虽然使用maven,但主要是使用仓库的依赖,构建编译打包这块一直用的不多。这次正好记录一下。

maven打包前首先要通过编译,本地lib包因为没有通过本地仓库依赖,所以要指定lib的位置。例如我这

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>UTF-8</encoding>
            <compilerArguments>
                <extdirs>${project.basedir}\src\main\resources\other\lib</extdirs>
            </compilerArguments>
        </configuration>
    </plugin>
</plugins>

这时 mvn compile 就不会报找不到本地jar包的情况。

 

编译通过了,也可以打包,但是war里却并没有本地lib中jar,只有仓库中正确添加进去了。
这时同样需要配置maven的war打包配置,如下

<plugins>
   <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
            <webResources>
                <resource>
                    <directory>${project.basedir}/src/main/resources/other/lib</directory>
                    <targetPath>WEB-INF/lib</targetPath>
                    <includes>
                        <include>*.jar</include>
                    </includes>
                </resource>
            </webResources>
        </configuration>
    </plugin>
</plugins>

记下一个坑

因为代码也是百度得来的,拷过来直接用,貌似也没问题,打包正常,就是运行是崩了。

天杀的!

原因是本地jar包打包进去了,但是这个jar包被损坏了。所以问题一直没解决,一直在注意是否打包方法错误,编码或是tomcat问题,知道我想去打开这个jar发现包损坏。

原因是多了下图的配置,去掉终于正常。

相关推荐