maven打包zip包含bin下啟動(dòng)腳本的完整代碼
maven打包zip包含bin下啟動(dòng)腳本,這個(gè)腳本小編在idea上測(cè)試有效:
pom.xml打包
<build>
<sourceDirectory>src/main/scala</sourceDirectory>
<testSourceDirectory>src/test/scala</testSourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<!-- 排除外置的配置文件(運(yùn)行時(shí)注釋上,使IDE能讀到配置文件;打包時(shí)放開(kāi)注釋讓配置文件外置,方便修改)可以不配置,maven-jar-plugin下面已配置 -->
<!--<excludes>
<exclude>config.properties</exclude>
</excludes>-->
</resource>
<!-- 配置文件外置的資源(存放到conf目錄,也是classpath路徑,下面會(huì)配置)-->
<!--<resource>
<directory>src/main/resources</directory>
<includes>
<include>config.properties</include>
</includes>
<targetPath>${project.build.directory}/conf</targetPath>
</resource>-->
</resources>
<plugins>
<!--scala編譯打包插件-->
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>scala-compile-first</id>
<phase>process-resources</phase>
<goals>
<goal>add-source</goal>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
<!--java編譯打包插件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
<!--
③打成一個(gè)zip包,發(fā)布項(xiàng)目的時(shí)候,將zip包c(diǎn)opy到服務(wù)器上,直接unzip xxx.zip,里面包含要運(yùn)行到的jar以及依賴的lib,還有配置的config文件,即可直接啟動(dòng)服務(wù)
-->
<!--The configuration of maven-jar-plugin-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<!--The configuration of the plugin-->
<configuration>
<!-- 不打包資源文件(配置文件和依賴包分開(kāi)) -->
<excludes>
<exclude>*.properties</exclude>
<exclude>*.xml</exclude>
<exclude>*.txt</exclude>
</excludes>
<!--Configuration of the archiver-->
<archive>
<!--生成的jar中,不要包含pom.xml和pom.properties這兩個(gè)文件-->
<addMavenDescriptor>false</addMavenDescriptor>
<!--Manifest specific configuration-->
<manifest>
<!--是否把第三方j(luò)ar放到manifest的classpath中-->
<addClasspath>true</addClasspath>
<!--生成的manifest中classpath的前綴,因?yàn)橐训谌絡(luò)ar放到lib目錄下,所以classpath的前綴是lib/-->
<classpathPrefix>lib/</classpathPrefix>
<!--應(yīng)用的main class-->
<mainClass>com.swordfall.restserver.base.WebServer</mainClass>
</manifest>
<!-- 給清單文件添加鍵值對(duì),增加classpath路徑,這里將conf目錄也設(shè)置為classpath路徑 -->
<manifestEntries>
<Class-Path>conf/</Class-Path>
</manifestEntries>
</archive>
<!--過(guò)濾掉不希望包含在jar中的文件-->
<!-- <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>src/main/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
assembly.xml打包zip設(shè)置
assembly.xml
<assembly>
<id>bin</id>
<includeBaseDirectory>false</includeBaseDirectory>
<!-- 最終打包成一個(gè)用于發(fā)布的zip文件 -->
<formats>
<format>zip</format>
</formats>
<!-- Adds dependencies to zip package under lib directory -->
<dependencySets>
<dependencySet>
<!-- 不使用項(xiàng)目的artifact,第三方j(luò)ar不要解壓,打包進(jìn)zip文件的lib目錄 -->
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>lib</outputDirectory>
<unpack>false</unpack>
</dependencySet>
</dependencySets>
<fileSets>
<!-- 把項(xiàng)目相關(guān)的說(shuō)明文件,打包進(jìn)zip文件的根目錄 -->
<!--<fileSet>
<directory>${project.basedir}</directory>
<outputDirectory>/</outputDirectory>
</fileSet>-->
<!-- 把項(xiàng)目的配置文件,打包進(jìn)zip文件的config目錄 -->
<!--<fileSet>-->
<!--<directory>${project.basedir}/src/main/resources</directory>-->
<!--<outputDirectory>/conf</outputDirectory>-->
<!--<includes>-->
<!--<include>*.xml</include>-->
<!--<include>*.properties</include>-->
<!--</includes>-->
<!--</fileSet>-->
<!-- 把項(xiàng)目自己編譯出來(lái)的jar文件,打包進(jìn)zip文件的根目錄 -->
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory></outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
<!-- 把項(xiàng)目的腳本文件目錄(src/main/scripts)中的啟動(dòng)腳本,打包進(jìn)zip文件的根目錄 -->
<fileSet>
<directory>${project.basedir}/src/main/bin</directory>
<outputDirectory>bin</outputDirectory>
<includes>
<include>*.sh</include>
</includes>
</fileSet>
</fileSets>
</assembly>
ps:下面看下maven 打zip包并包含bin和docs文件夾
maven插件:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/resources/assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
assembly.xml
<assembly>
<id>package</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${project.parent.basedir}/bin</directory>
<outputDirectory>\bin</outputDirectory>
</fileSet>
<fileSet>
<directory>${project.parent.basedir}/db</directory>
<outputDirectory>\db</outputDirectory>
</fileSet>
<fileSet>
<directory>${project.parent.basedir}/docs</directory>
<outputDirectory>\docs</outputDirectory>
</fileSet>
<fileSet>
<directory>${project.parent.basedir}</directory>
<outputDirectory>\</outputDirectory>
<includes>
<include>readme.md</include>
<include>release-notes</include>
</includes>
</fileSet>
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>\</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
</fileSets>
</assembly>
到此這篇關(guān)于maven打包zip包含bin下啟動(dòng)腳本的文章就介紹到這了,更多相關(guān)maven打包zip內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot中實(shí)現(xiàn)訂單30分鐘自動(dòng)取消的項(xiàng)目實(shí)踐
現(xiàn)在電子商務(wù)平臺(tái)上訂單創(chuàng)建成功,等待支付,一般會(huì)給30分鐘的時(shí)間,本文主要介紹了SpringBoot中實(shí)現(xiàn)訂單30分鐘自動(dòng)取消的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
MyBatis-Plus標(biāo)簽@TableField之fill自動(dòng)填充方式
這篇文章主要介紹了MyBatis-Plus標(biāo)簽@TableField之fill自動(dòng)填充方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
java 類(lèi)加載機(jī)制和反射詳解及實(shí)例代碼
這篇文章主要介紹了java 類(lèi)加載機(jī)制和反射詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-03-03
Java中CopyOnWriteArrayList的使用解析
這篇文章主要介紹了Java中CopyOnWriteArrayList的使用解析,CopyOnWriteArrayList適合使用在讀操作遠(yuǎn)遠(yuǎn)大于寫(xiě)操作的場(chǎng)景里,比如緩存,它不存在擴(kuò)容的概念,每次寫(xiě)操作都要復(fù)制一個(gè)副本,在副本的基礎(chǔ)上修改后改變Array引用,需要的朋友可以參考下2023-12-12

