实现maven打包 可执行jar与依赖jar分离

<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>/.xml</include>
<include>
/.properties</include>
<include>/.yml</include>
</includes>
</resource>

<resource>
<targetPath>${project.build.directory}/classes</targetPath>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>

<include>
/.xml</include>
<include>/.properties</include>
<include>
/.yml</include>
</includes>
</resource>
</resources>

    <plugins>
        <!-- 资源文件拷贝插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <configuration>
                <encoding>${project.build.sourceEncoding}</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
                <encoding>${project.build.sourceEncoding}</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <warName>${project.artifactId}-${project.version}</warName>
            </configuration>
        </plugin>
        <!-- 跳过测试代码 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <skipTests>true</skipTests>
            </configuration>
        </plugin>
        <!-- maven打包成jar的插件 -->
        <!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <!-- 把target/classes/下的文件导入到jar内 -->
                <classesDirectory>target/classes/</classesDirectory>
                <finalName>${project.artifactId}-${project.version}</finalName>
                <archive>
                    <manifest>
                        <!-- 指定程序入口 -->
                        <mainClass>${spring-cloud-main-class}</mainClass>
                        <!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 -->
                        <useUniqueVersions>false</useUniqueVersions>
                        <addClasspath>true</addClasspath>
                        <!-- 服务依赖的jar包放在lib目录下 -->
                        <classpathPrefix>lib/</classpathPrefix>
                        <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <!-- <includeScope>compile</includeScope> -->
                        <type>jar</type>
                        <includeTypes>jar</includeTypes>
                        <!-- 存放服务依赖的jar包,存放在服务相同目录的lib文件夹下 -->
                        <outputDirectory>
                            ${project.build.directory}/lib
                        </outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • =========================================================...
    lavor阅读 3,508评论 0 5
  • 前言什么是 POMQuick Overview POM 常用元素 pom.xml 完整注释 参考 0 前言 什么是...
    阿父阅读 12,655评论 1 36
  • Correctness AdapterViewChildren Summary: AdapterViews can...
    MarcusMa阅读 8,916评论 0 6
  • 项目学员:所有学员参与其中,扮演鸡蛋、小鸡、凤凰、大猩猩和人。 项目时间:20分钟 项目控制:拓展培训师要求全体人...
    宇宙子衿阅读 3,227评论 1 0
  • 我是个特别笨的孩子,在爱情方面开窍的晚。 在我上学前班的时候,我一直是班上默默无闻的孩子,各方面都不出众,也不善于...
    白羽君阅读 355评论 0 0