1. 程式人生 > >springboot 基於 maven 自定義格式打包

springboot 基於 maven 自定義格式打包

第一步,開啟專案所在的工作空間並建立conf資料夾,在該檔案下建立package.xml  內容如下:
    <assembly>    
        <id>bin</id>    
        <!-- 最終打包成一個用於釋出的zip檔案 -->    
        <formats>    
            <format>zip</format>    
        </formats>    
        
        <!-- Adds dependencies to zip package under lib directory -->    
        <dependencySets>    
            <dependencySet>    
                <!--  
                   不使用專案的artifact,第三方jar不要解壓,打包進zip檔案的lib目錄  
               -->    
                <useProjectArtifact>false</useProjectArtifact>    
                <outputDirectory>lib</outputDirectory>    
                <unpack>false</unpack>    
            </dependencySet>    
        </dependencySets>    
        
        <fileSets>    
            <!-- 把專案相關的說明檔案,打包進zip檔案的根目錄 -->    
            <fileSet>    
                <directory>${project.basedir}</directory>    
                <outputDirectory>/</outputDirectory>    
                <includes>    
                    <include>README*</include>    
                    <include>LICENSE*</include>    
                    <include>NOTICE*</include>    
                </includes>    
            </fileSet>    
                
            <!-- 把專案的配置檔案,打包進zip檔案的config目錄 -->    
            <fileSet>    
                <directory>${project.basedir}/src/main/resources</directory>    
                <outputDirectory>/</outputDirectory>    
                <includes>    
					 <include>**/*</include>
                    <include>*.xml</include>    
                    <include>*.properties</include>
					<include>*.yml</include>					
                    <include>*.key</include>   
                </includes>    
            </fileSet>    
                
            <!-- 把專案的指令碼檔案目錄( src/main/scripts )中的啟動指令碼檔案,打包進zip檔案的跟目錄 -->    
            <fileSet>    
                <directory>${project.build.scriptSourceDirectory}</directory>    
                <outputDirectory></outputDirectory>    
                <includes>    
                    <include>startup.*</include>    
                </includes>    
            </fileSet>    
        
            <!-- 把專案自己編譯出來的jar檔案,打包進zip檔案的根目錄 -->    
            <fileSet>    
                <directory>${project.build.directory}</directory>    
                <outputDirectory></outputDirectory>    
                <includes>    
                    <include>*.jar</include>    
                </includes>    
            </fileSet>    
        </fileSets>    
    </assembly>  

第二步,在pom.xml檔案中新增
<plugin>
                <groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
				</configuration>
			</plugin>
			
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>2.6</version>
				<configuration>
					<archive>
						<addMavenDescriptor>false</addMavenDescriptor>
						<manifest>
							<addClasspath>true</addClasspath>
							<classpathPrefix>lib/</classpathPrefix>
<!-- 這裡需要指定main方法的所在的類 -->
							<mainClass>server.BasicMicroServiceApplication</mainClass>
						</manifest>
					</archive>
					<excludes>    
						<exclude>${project.basedir}/xml/*</exclude>    
					</excludes> 
				</configuration>
			</plugin>
			<!-- The configuration of maven-assembly-plugin -->    
        <plugin>    
            <groupId>org.apache.maven.plugins</groupId>    
            <artifactId>maven-assembly-plugin</artifactId>    
            <version>2.4</version>    
            <!-- The configuration of the plugin -->    
            <configuration>    
                <!-- Specifies the configuration file of the assembly plugin -->    
                <descriptors>    
                    <descriptor>conf/package.xml</descriptor>    
                </descriptors>    
            </configuration>    
            <executions>    
                <execution>    
                    <id>make-assembly</id>    
                    <phase>package</phase>    
                    <goals>    
                        <goal>single</goal>    
                    </goals>    
                </execution>    
            </executions>    
        </plugin>     
使用mvn clean 清空target  然後使用mvn package
最終生成的目錄在target下:如下