前言
先吐槽几句,公司有一小组专门来做各个项目的测试环境以及打包上线的工作,我们称之为XX,这个XX并不是什么业务领导,也只是一个螺丝钉。这群人每天对上跪舔,对其他人爱搭不理,给人一种高高在上的感觉,之前的一个老旧项目,好多年都没有新增过jar包了,最近有需求需要上线一个jar包,但是maven私仓地址我们团队的同事都有,那就只能找XX要了,结果两天发了n条消息就是不回复。我的工作也不能顺利推进。没办法只能自己想办法解决了。看了一下maven的文档发现一个systemPath关键字。于是探索了一下。
打包本地jar包
在pom.xml中添加配置。
        <dependency>
            <groupId>com.test.test</groupId>
            <artifactId>whiteList</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/WhiteList.jar</systemPath>
        </dependency>  
 
这个配置相对于大家熟悉的从仓库拉去有明显的区别。
 这里的greoupId、artifaceId、version都是自定义的。scope必须指定为system,这样maven在打包的时候就会从本地去寻找依赖jar,systemPath则是指定jar包所在的位置。

${project.basedir}表示的就是项目路径
我的工程项目如下:

最后在pom.xml的build标签中添加如下内容:
<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/webapp</directory>
                <includes>
                    <include>**/*.jar</include>
                </includes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
 
这样就不用上传maven私仓,打包出来的最终war包里就会包含本地jar包。



















