一、背景(Maven打包存在的问题)
Maven默认打包后,jar文件都是生成在各自服务的target下,对微服务的部署不太友好,需要整个项目上传服务器,里面包含了源码
二、如何解决以上问题?
其实可以在打包时把所需jar包复制到指定的目录
具体思路:打包时复制jar包到指定文件目录,以下是具体的做法
2.1 步骤1 父级POM修改
在父级POM配置中加入
<properties>
    <!--打包配置-->
    <copy>true</copy>
    <localDir>D:/demo-jar</localDir>
    ......
</properties>
2.2 步骤2 子级POM修改
在各个module项目中pom中配置
<!--打包时复制jar包到指定文件目录-->
<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
            <id>copy</id><!--需要唯一-->
            <phase>package</phase><!--当执行package操作时执行一下任务-->
            <configuration>
                <tasks><!--任务-->
                    <echo message="start.................................."/><!--打印-->
                    <echo message="load maven plugin ant-contrib-1.0b3"/>
                    <!--加载plugin ant-contrib的配置文件-->
                    <taskdef resource="net/sf/antcontrib/antlib.xml">
                        <classpath><!--加载jar包,${settings.localRepository}的值是你maven settings文件中配置的本地仓库位置-->
                            <pathelement
                                    location="${settings.localRepository}/ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar"/>
                        </classpath>
                    </taskdef>
                    <!--复制jar包-->
                    <if>
                        <equals arg1="${copy}" arg2="true"/><!--是否复制jar包-->
                        <then>
                            <echo message="Copy jar to your desired path."/>
                            <copy todir="${localDir}"
                                  overwrite="true"><!--执行复制操作,todir的值是将要复制jar包到的地方,overwrite是否重写-->
                                <fileset
                                        dir="${project.build.directory}"><!--${project.build.directory}值是你的target目录-->
                                    <include name="*.jar"/><!--target目录下的jar包-->
                                </fileset>
                            </copy>
                        </then>
                    </if>
                </tasks>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>
三、结果验证
配完以上代码后,执行mvn clean install,部署所需的jar文件就都在D:/demo-jar下了
 
![[激光原理与应用-63]:激光器-光学-探测光、泵浦光和种子光三种光的区别](https://img-blog.csdnimg.cn/img_convert/c4dfd2c7cbbee4df88d949be656ed4d3.png)

















