Maven打包时拆分依赖并保留Git版本号且存在未提交文件时不允许打包

61 阅读1分钟
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>11</source>
                <target>11</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.7.4</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <layout>ZIP</layout>
                <includes>
                    <include>
                        <groupId>nothing</groupId>
                        <artifactId>nothing</artifactId>
                    </include>
                </includes>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.1.2</version>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>target/libs</outputDirectory>
                        <excludeTransitive>false</excludeTransitive>
                        <stripVersion>false</stripVersion>
                        <includeScope>runtime</includeScope>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>io.github.git-commit-id</groupId>
            <artifactId>git-commit-id-maven-plugin</artifactId>
            <version>6.0.0</version>
            <executions>
                <execution>
                    <id>get-the-git-infos</id>
                    <phase>initialize</phase>
                    <goals>
                        <goal>revision</goal>
                    </goals>
                </execution>
                <execution>
                    <id>validate-the-git-infos</id>
                    <phase>package</phase>
                    <goals>
                        <goal>validateRevision</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <abbrevLength>8</abbrevLength>
                <dateFormat>yyyy-MM-dd HH:mm:ss</dateFormat>
                <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
                <generateGitPropertiesFile>true</generateGitPropertiesFile>
                <generateGitPropertiesFilename>${project.build.outputDirectory}/banner.txt
                </generateGitPropertiesFilename>
                <format>json</format>
                <gitDescribe>
                    <skip>false</skip>
                    <always>false</always>
                    <dirty>-dirty</dirty>
                </gitDescribe>
                <validationProperties>
                    <validationProperty>
                        <name>存在未提交文件时打包失败,请提交后重新打包</name>
                        <value>${git.dirty}</value>
                        <shouldMatchTo>false</shouldMatchTo>
                    </validationProperty>
                </validationProperties>
                <validationShouldFailIfNoMatch>true</validationShouldFailIfNoMatch>
            </configuration>
        </plugin>
    </plugins>
</build>