maven打包踩的坑--打包时将pom依赖包加入进来
步子迈的有点大, 结果基础不牢
之前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仓下)

浙公网安备 33010602011771号