1. 程式人生 > >springboot中Maven打包與依賴的jar分開

springboot中Maven打包與依賴的jar分開

   我們在用springboot開發時,時常會遇到這種問題,當我們對程式做了一個小改動時,如果要將改動後的程式釋出到生產環境,則需要將整個程式重新打包,然後將打完的包釋出到生產環境上,這樣有個問題,如果依賴的jar包很多,就會導致所打的包很大,每次修改都需重新複製,這樣就會導致效率很低,因此,為了提高效率,我們可以將依賴的jar包與程式分別放在不同地方,這樣只需第一次將依賴的jar包與所打程式包複製到開發環境,後面如果只是程式上的修改就可以只需重新打程式包,然後複製,這樣就會節省很多時間。
   pom檔案如下所示,首先需要加入依賴的打包檔案:

    <dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.4.3</version>
    </dependency>

    <dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.1.0</version>
    </dependency>

   配置如下:

<plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>com.hfz.hfzadmin.HfzadminApplication</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        <overWriteReleases>false</overWriteReleases>
                        <overWriteSnapshots>false</overWriteSnapshots>
                        <overWriteIfNewer>true</overWriteIfNewer>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>

   上面一個配置是指定程式依賴包的位置,下面一個是指定將依賴的jar包存放的位置。重新打包後的檔案目錄結構如下所示:


這裡寫圖片描述