javascript
SpringBoot项目利用maven自定义打包结构
From: https://blog.csdn.net/q15858187033/article/details/80742117
SpringBoot官方提供的demo中,pom.xml文件里引用了官方提供的打包插件
??? <build>
??????? <plugin>
?????????? <groupId>org.springframework.boot</groupId>
?????????? <artifactId>spring-boot-maven-plugin</artifactId>
??????? </plugin>
???? </build>
??????? 通過這種方式打包出來的項目,所有文件都放在一個jar包中。這使得jar包非常臃腫,不利于服務器上部署。這時候就希望在maven打包的時候,把一些結構分離出jar包外。
??????? 例如一個項目的目錄結構是這樣的:,最終想打包變成這種結構。其中resources下的配置文件放在config目錄下,所有的依賴包放在lib下,程序的啟動jar就會變得很小。并且代碼改變之后,只需要將打包出來的jar上傳到服務器替換后再運行就可以了。
??????? 要自定義打包的結構,需要修改pom.xml文件中<build>標簽里的內容
??? <build>
??????????? <finalName>FlightChangeService</finalName>
??????????? <resources>
??????????????? <resource>
??????????????????? <!--指定mapping下的所有xml文件打包在jar中-->
??????????????????? <targetPath>${project.build.directory}/classes</targetPath>
??????????????????? <directory>src/main/resources</directory>
??????????????????? <filtering>true</filtering>
??????????????????? <includes>
??????????????????????? <include>mapping/*.xml</include>
??????????????????? </includes>
??????????????? </resource>
??????????????? <resource>
??????????????????? <!--resources下一級的所有.xml .properties文件復制到config目錄下-->
??????????????????? <targetPath>${project.build.directory}/config</targetPath>
??????????????????? <directory>src/main/resources</directory>
??????????????????? <filtering>true</filtering>
??????????????????? <includes>
??????????????????????? <include>**.xml</include>
??????????????????????? <include>**.properties</include>
??????????????????? </includes>
??????????????? </resource>
??????????? </resources>
??????????? <plugins>
??????????????? <!--maven-dependency插件,將項目所有依賴包放到lib目錄下-->
??????????????? <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>
??????????????????????????????? <type>jar</type>
??????????????????????????????? <includeTypes>jar</includeTypes>
??????????????????????????????? <outputDirectory>
??????????????????????????????????? ${project.build.directory}/lib
??????????????????????????????? </outputDirectory>
??????????????????????????? </configuration>
??????????????????????? </execution>
??????????????????? </executions>
??????????????? </plugin>
??? ?
??????????????? <plugin>
??????????????????? <groupId>org.apache.maven.plugins</groupId>
??????????????????? <artifactId>maven-jar-plugin</artifactId>
??????????????????? <configuration>
??????????????????????? <classesDirectory>target/classes/</classesDirectory>
??????????????????????? <archive>
??????????????????????????? <!--生成的jar中,不要包含pom.xml和pom.properties這兩個文件-->
??????????????????????????? <addMavenDescriptor>false</addMavenDescriptor>
??????????????????????????? <manifest>
??????????????????????????????? <mainClass>com.loongair.Application</mainClass>
??????????????????????????????? <!-- 打包時 MANIFEST.MF文件不記錄的時間戳版本 -->
??????????????????????????????? <useUniqueVersions>false</useUniqueVersions>
??????????????????????????????? <addClasspath>true</addClasspath>
??????????????????????????????? <classpathPrefix>lib/</classpathPrefix>
??????????????????????????? </manifest>
??????????????????????????? <manifestEntries>
??????????????????????????????? <!--jar中的MANIFEST.MF文件ClassPath需要添加config目錄才能讀取到配置文件-->
??????????????????????????????? <Class-Path>config/ .</Class-Path>
??????????????????????????? </manifestEntries>
??????????????????????? </archive>
??????????????????? </configuration>
??????????????? </plugin>
??????????? </plugins>
??????? </build>
??????? 執行maven install之后target目錄下就生成了我們自定義的包結構了
總結
以上是生活随笔為你收集整理的SpringBoot项目利用maven自定义打包结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MongoDB中的分组
- 下一篇: [JS] Invalid Date