maven父子專案使用assembly外掛打包
1、使用assembly打包,當釋出專案時,需要將程式的jar包、依賴的jar包、執行指令碼、配置檔案等一起釋出,就需要使用maven的assembly外掛,將專案釋出為zip包或tar.gz包,網上介紹的使用assembly打包都是單個專案的,沒有介紹父子專案打包了,所以試了好久,後來才發現,assembly打包不區分父子專案還是單獨專案,哪個專案需要打包就在哪個專案的pom中配置assembly即可,比如我的專案中,parent和base都不需要打包,只要hotword和rankinglist需要打包,所以只在hotword和rankinglist專案的pom檔案新增如下配置即可,然後在子專案的相應目錄下新增assembly.xml
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <id>make-zip</id> <!--繫結到package生命週期階段上 --> <phase>package</phase> <goals> <!--繫結到package生命週期階段上 --> <goal>single</goal> </goals> <configuration> <!-- 描述檔案路徑 --> <descriptors> <descriptor>src/main/assembly/assembly.xml</descriptor> </descriptors> </configuration> </execution> </executions> </plugin> </plugins>
2、assembly.xml檔案的配置
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> <id>distribution</id> <formats> <format>zip</format> </formats> <fileSets> <fileSet> <directory>${project.basedir}/src/main/scripts</directory> <outputDirectory>/</outputDirectory> </fileSet> <fileSet> <directory>${project.basedir}/lib</directory> <outputDirectory>/lib</outputDirectory> </fileSet> </fileSets> <dependencySets> <dependencySet> <useProjectArtifact>true</useProjectArtifact> <outputDirectory>lib</outputDirectory> <!-- 將scope為runtime的依賴包打包到lib目錄下。 --> <scope>runtime</scope> </dependencySet> <dependencySet> <useProjectArtifact>true</useProjectArtifact> <outputDirectory>lib</outputDirectory> <!-- 將scope為runtime的依賴包打包到lib目錄下。 --> <scope>system</scope> <includes> <include>*:jar</include> </includes> </dependencySet> </dependencySets> </assembly>
注意如果前面有依賴包是本地jar包,這裡打包時就遇到問題了,本地jar包scope是system,但assembly打包預設是把scope為runtime的jar包打進zip中,所以不能將本地jar包壓進zip,網上給的建議都是把本地的jar包安裝到本地maven庫,最終我也妥協了。
3、安裝jar包到本地maven庫,以jieba分詞為例
1)到github上下載jieba分詞的原始碼
2)進入jieba分詞專案的根目錄,執行mvn install命令,就會自動編譯打包並安裝到本地maven庫,但jieba分詞專案的pom檔案中有登入驗證,直接執行install會提示輸入密碼,否則報錯,只需要將pom檔案中關於maven-gpg-plugin的配置註釋掉,再執行mvn install即可
3)此時,依賴於jieba分詞的專案的dependency配置就不需要scope和path了,改為如下即可
<dependency>
<groupId>com.huaban</groupId>
<artifactId>jieba-analysis</artifactId>
<version>1.0.3-SNAPSHOT</version>
<!--<scope>system</scope>
<systemPath>${project.basedir}/lib/jieba-analysis-1.0.3-SNAPSHOT.jar</systemPath>-->
</dependency>
相關推薦
maven父子專案使用assembly外掛打包
1、使用assembly打包,當釋出專案時,需要將程式的jar包、依賴的jar包、執行指令碼、配置檔案等一起釋出,就需要使用maven的assembly外掛,將專案釋出為zip包或tar.gz包,網上介紹的使用assembly打包都是單個專案的,沒有介紹父子專案打包了,所以
Maven父子專案打包子專案出現Failed to collect dependencies問題
Maven父子專案打包子專案出現Failed to collect dependencies問題 使用Idea建立Springboot專案多個模組打包,因為是第一次使用,遇到了一些問題,記錄一下。 錯誤如下: Failed to execute goal on project project
【Maven】Maven系列(二)——利用assembly外掛打包
在maven中有幾種方法打包專案,在之前的一篇部落格中【Java】打包Jar包並用指令碼執行,已經介紹了怎麼在沒有maven外掛的情況下,怎麼打包專案,並執行的。 而本篇則是在上一篇文章【Maven】Maven系列(一)——環境安裝配置和新建maven專案之後
國慶來個maven父子專案建立
Maven是一個非常實用的專案管理結構,自己也實用maven開發許久,但是還沒有真正自己建立一個父子專案來實踐實踐,國慶假期歸來,閒來無事自己動手建立一個試一試, 環境:eclipse+maven3.3+JDK7 1、建立父親專案。 2、兩個按鈕都要選擇,建立一個簡單的專案結構
linux伺服器 maven lombok專案無法自動打包
由於公司部署專案都升級為自動化部署導致lombokxia專案在linux在通過maven命令無法打包,始終報以下錯誤,通過查詢發現是因為maven 專案打包無法將lombok管理的get、set方法生成出來 百度說明maven-compiler-plugin包需要3.3
在maven 父子專案及子專案引用問題
在專案開發會存在這樣的專案組織要求,一個父專案,幾個子專案,子專案有單項引用。這樣的要求反應到Maven中是怎樣的呢? 在maven 裡互相依賴是不允許的,即只允許單項依賴。另外,正在開發中的子專案如何被另一子專案所依賴呢?這些問題可以到pom.xml得到解決。 有幾個很關鍵
intelJ IDEA 建立maven父子專案模組的方法
在 intelJ IDEA 建立maven父子專案模組是經常用到的,但是,對於初學者來說也是比較容易忽略的。可以說很簡約,下面直接上圖。 首先,建立一個父專案。依次file>new>module 在出現的介面中選maven專案,記住不要勾選任何內容。 下一步,
【MAVEN】專案管理外掛maven-plugins
Maven是一個專案管理工具,它包含了一個專案物件模型 (Project Object Model),一組標準集合,一個專案生命週期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用
Maven 公共專案更新後打包時引用不到的問題( common專案,Jenkins配置)
最近做的專案用Jenkins做持續整合和持續交付。在Jenkins裡配置好maven命令,自動執行。 前臺的專案結構是這樣的 mall-web-parent -- innodata-web-common -- innomall-web-
maven啟動專案那些坑-----打包處理
不能啟動,始終不能開啟專案,徐老師又催的緊............. 急死我了。 後來在 csii - loan - parent 下打包 package一下 有時候一直排錯不行,後來發現原來是jar包沒有打進去,這才是萬年難遇的坑。 沒事咯! 給個讚唄
spark專案藉助maven-shade-plugin外掛打包依賴
maven配置 maven配置 <profiles> <profile> <id>spark-c
使用maven-assembly-plugin外掛打包
在pom.xml中配置 <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupI
使用Maven的assembly外掛實現自定義打包
一、背景 最近我們專案越來越多了,然後我就在想如何才能把基礎服務的打包方式統一起來,並且可以實現按照我們的要求來生成,通過研究,我們通過使用maven的assembly外掛完美的實現了該需求,爽爆了有木有。本文分享該外掛的配置以及微服務的統一打包方式。 二、配置步驟及
Maven的assembly外掛實現自定義打包部署(包含依賴jar包)
微服務必備 優點: 1、可以直接匯入依賴jar包 2、可以新增外掛啟動 .sh 檔案 3、外掛的配置以及微服務的統一打包方式 1.首先我們需要在pom.xml中配置maven的assembly外掛 <build> <plugins
maven-assembly-plugin外掛打包 jar、tar.gz
使用 maven-assembly-plugin 外掛可以將我們的java application(java應用程式)打成可執行jar,下面簡要介紹一下使用maven-assembly-plugin打包可執行jar和tar.gz。 前面我們已經介紹過maven 多環境打包配
maven中使用assembly對java語言專案進行打包
1.在pom.xml檔案出新增如下配置資訊:(build標籤和dependencies標籤處於同一梯度) <build> <resources> <resource>
使用maven-assembly-plugin打包zipproject
ati XML private odin 能夠 tracking resp clas end 使用Maven對Web項目進行打包。默覺得war包。但有些時候。總是希望打成zip包(亦或其它壓縮包,類似tomcat的那種文件夾結構,直接運行bin/sta
maven-assembly-plugin打包可執行的jar包
main 可執行 assembly ase div streaming jar包 clas lean pom.xml添加 <build> <plugins> <plugin>
idea spring boot 使用maven-plugin外掛打包
首頁需要需改pom.xml檔案的packaging : <modelVersion>4.0.0</modelVersion> <packaging>war</packaging> 新增外部執行的tomcat依賴: <dependenc
Maven專案中不打包 *.hbm.xml 對映檔案
今天做個maven專案,各種百度,終於解決了為什麼hbm.xml找不到,路徑都正確 話不多說。首先可以在pom.xml中配置 <build> <sourceDirectory>src/main/java</sourceDirectory>&nbs