maven打包踩的坑--打包時將pom依賴包加入進來
阿新 • • 發佈:2019-02-20
步子邁的有點大, 結果基礎不牢
之前ik分詞器打包直接使用run as -> maven install 方式,到maven倉的對應位置生成的jar直接應用, 一直沒有問題
今天ik分詞器新增了pinyin過濾器, 結果打包沒有異常, solr的控制檯在分詞時會報異常class not define... , 因為之前ik分詞器依賴的lucene包都在solr環境中存在
所以需要maven打包成第三方jar包且把pom依賴包打入進來,方法如下:
1.pom檔案新增
<plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>com.allen.capturewebdata.Main</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin>
或者
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.4.1</version> <configuration> <!-- get all project dependencies --> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <!-- MainClass in mainfest make a executable jar --> <archive> <manifest> <mainClass>util.Microseer</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <!-- bind to the packaging phase --> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
2. run as -> maven build ... 新增命令 clean assembly:assembly(注意這裡沒有mvn , 因為eclipse外掛已經自動新增)
3. 執行成功後會在target資料夾下多出一個以-jar-with-dependencies結尾的JAR包. 這個JAR包就包含了專案所依賴的所有JAR的CLASS(注意該jar包不在maven倉下)