您好,登錄后才能下訂單哦!
工程實(shí)例代碼:https://github.com/chocolateBlack/multi_env_folder_maven
利用Maven、Jenkins實(shí)現(xiàn)項(xiàng)目自動化部署,能夠按照bin、conf、lib文件進(jìn)行打包,并能夠通過Jenkins按照環(huán)境一鍵發(fā)不到服務(wù)器上
path=${hdfs.path}
profile的配置如下:
<profiles>
<profile>
<id>dev</id>
<properties>
<active.profile>dev</active.profile>
<!-- 業(yè)務(wù)配置信息 -->
<hdfs.path>/dev/wh/source/tp</hdfs.path>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<active.profile>dev</active.profile>
<!-- 業(yè)務(wù)配置信息 -->
<hdfs.path>/test/wh/source/tp</hdfs.path>
</properties>
</profile>
</profiles>
接下來就需要讓maven能夠解析conf文件夾中Maven屬性,這就是maven-resources-plugin要做的事情。
開啟資源過濾,并指定過濾的目錄。以下配置指定src/main/conf目錄下所有類型的文件開啟資源過濾,并將解析后的文件指定輸出到target/class/conf目錄下
<resources>
<resource>
<directory>src/main/conf/</directory>
<filtering>true</filtering>
<includes>
<include>**/*.*</include>
</includes>
<targetPath>conf</targetPath><!-- 最終打包的目錄是target/class/conf,用戶assembly插件從這個(gè)目錄中讀取編譯好的配置文件 -->
</resource>
</resources>
2.其次,利用maven-assembly-plugin插件,將編譯好的項(xiàng)目分成bin、conf、lib目錄。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<executions><execution><!-- 配置執(zhí)行器 -->
<id>make-assembly</id>
<phase>package</phase><!-- 綁定到package生命周期階段上 -->
<goals>
<goal>single</goal><!-- 只運(yùn)行一次 -->
</goals>
<configuration>
<archive>
<manifest>
<!-- 此處指定main方法入口的class -->
<mainClass>com.test.HelloMaven</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>${project.name}</finalName>
<descriptor>src/main/assembly/assembly.xml</descriptor><!--配置描述文件路徑-->
</configuration>
</execution>
</executions>
</plugin>
關(guān)于文件分發(fā)的assembly.xml配置:
<fileSets>
<!-- 將src/main/bin下的文件,打包到目標(biāo)目錄的bin文件夾下 -->
<fileSet>
<directory>src/main/bin</directory>
<outputDirectory>bin</outputDirectory>
<fileMode>755</fileMode>
</fileSet>
<!-- 經(jīng)過maven-resources-plugin插件生成的配置文件位于target/classes/conf/中 -->
<fileSet>
<directory>target/classes/conf/</directory>
<outputDirectory>conf</outputDirectory>
<fileMode>755</fileMode>
<lineEnding>unix</lineEnding>
<excludes>
<exclude>*.formatted</exclude>
</excludes>
</fileSet>
</fileSets>
<dependencySets>
<!-- 工程單獨(dú)的jar,分發(fā)到lib目錄中 -->
<dependencySet>
<fileMode>755</fileMode>
<outputFileNameMapping>${project.artifactId}-${project.version}.jar</outputFileNameMapping>
<outputDirectory>/lib/</outputDirectory>
<scope>runtime</scope>
<includes>
<include>${project.groupId}:${project.artifactId}</include>
</includes>
</dependencySet>
<!-- jar-with-dependencies方式,包含依賴jar的大包,放到lib目錄下 -->
<dependencySet>
<fileMode>755</fileMode>
<outputFileNameMapping>${project.name}-jar-with-dependencies.jar</outputFileNameMapping>
<outputDirectory>/lib/</outputDirectory>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
項(xiàng)目結(jié)構(gòu)圖:
通過mvn package -Pdev命令打包后conf中的配置文件是按照dev環(huán)境生成的結(jié)果
解析后的conf.yamlpath=/dev/wh/source/tp
target目錄下的結(jié)構(gòu)圖,紅框標(biāo)記的就是期待的結(jié)構(gòu)目錄
3.項(xiàng)目按bin、conf、lib生成部署結(jié)構(gòu),剩下的事情就交給Jenkins,通過Jenkins以及其插件,將打包結(jié)果上傳目標(biāo)服務(wù)器
如下主要描述Jenkins配置的主要幾個(gè)位置
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。