<build> <!-- jar包名 --> <finalName>SearchIntegration</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <!-- 指定配置文件目錄,這樣jar運行時會去找到同目錄下的resources文件夾下查找 --> <manifestEntries> <Class-Path>resources/</Class-Path> </manifestEntries> </archive> <!-- 打包時忽略的文件(也就是不打進jar包裏的文件) --> <excludes> <exclude>**/**</exclude> </excludes> </configuration> </plugin> <!-- 複製資源文件 --> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <!-- 資源文件輸出目錄 --> <outputDirectory>${project.build.directory}/resources</outputDirectory> <resources> <resource> <directory>src/main/resources</directory> </resource> </resources> </configuration> </execution> </executions> </plugin> <!-- springboot repackage --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
上述執行打包後,會在target目錄下生成jar包和resources文件夾,將jar包和resources文件夾複製到同一目錄下。java
執行運行jar包命令:java -jar xxx.jar 便可。spring
<build> <!-- jar包名 --> <finalName>SearchIntegration</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <!-- 指定配置文件目錄,這樣jar運行時會去找到同目錄下的resources文件夾下查找 --> <manifestEntries> <Class-Path>resources/</Class-Path> </manifestEntries> </archive> <!-- 打包時忽略的文件(也就是不打進jar包裏的文件) --> <excludes> <exclude>**/**</exclude> </excludes> </configuration> </plugin> <!-- 複製資源文件 --> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <!-- 資源文件輸出目錄 --> <outputDirectory>${project.build.directory}/resources</outputDirectory> <resources> <resource> <directory>src/main/resources</directory> </resource> </resources> </configuration> </execution> </executions> </plugin> <!-- 分離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> <!-- 依賴包輸出目錄 --> <outputDirectory>${project.build.directory}/lib</outputDirectory> <excludeTransitive>false</excludeTransitive> <stripVersion>false</stripVersion> <!-- 依賴包的做用域 --> <includeScope>runtime</includeScope> </configuration> </execution> </executions> </plugin> <!-- springboot repackage --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <layout>ZIP</layout> <addResources>true</addResources> <includes> <include> <groupId>non-exists</groupId> <artifactId>non-exists</artifactId> </include> </includes> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
對上述依賴包的做用域說明:apache
在定義項目的依賴項的時候,咱們能夠經過scope來指定該依賴項的做用範圍。scope的取值有compile、runtime、test、provided、system和import。
compile:這是依賴項的默認做用範圍,即當沒有指定依賴項的scope時默認使用compile。compile範圍內的依賴項在全部狀況下都是有效的,包括運行、測試和編譯時。
runtime:表示該依賴項只有在運行時纔是須要的,在編譯的時候不須要。這種類型的依賴項將在運行和test的類路徑下能夠訪問。
test:表示該依賴項只對測試時有用,包括測試代碼的編譯和運行,對於正常的項目運行是沒有影響的。
provided:表示該依賴項將由JDK或者運行容器在運行時提供,也就是說由Maven提供的該依賴項咱們只有在編譯和測試時纔會用到,而在運行時將由JDK或者運行容器提供。
system:當scope爲system時,表示該依賴項是咱們本身提供的,不須要Maven到倉庫裏面去找。指定scope爲system須要與另外一個屬性元素systemPath一塊兒使用,它表示該依賴項在當前系統的位置,使用的是絕對路徑。springboot
對maven的一些路徑進行說明,這些都是內置屬性(Maven預約義能夠直接使用):maven
${basedir} 項目根目錄
${version}表示項目版本;
${project.basedir}同${basedir};
${project.version}表示項目版本,與${version}相同;
${project.build.directory} 構建目錄,缺省爲target
${project.build.sourceEncoding}表示主源碼的編碼格式;
${project.build.sourceDirectory}表示主源碼路徑;
${project.build.finalName}表示輸出文件名稱;
${project.build.outputDirectory} 構建過程輸出目錄,缺省爲target/classeside
maven的一些命令:spring-boot
mvn clean 把target目錄刪掉
mvn clean compile 編譯項目至target目錄
mvn clean package 編譯+打包 至target目錄
mvn clean install 編譯+打包 至target目錄 而後安裝到本地倉庫
mvn clean deploy 上傳jar包到遠程倉庫
mvn javadoc:jar 打包javadoc文檔
若是須要將源碼上傳到遠程倉庫,則需deploy,而後再在pom文件中配置遠程倉庫的地址等信息。測試
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>3.0.1</version> <configuration> <attach>true</attach> </configuration> <executions> <execution> <phase>compile</phase> <!--指定綁定的聲明週期階段--> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin>