maven将所有的依赖打成一个包

来源:互联网 发布:sql设置取值范围 编辑:程序博客网 时间:2024/05/21 14:48

跑mapreduce实验的时候发现,总是报错CLASSNOTFOUND,找不到一个第三方jar包的类,即使在hadoop-env.sh添加HADOOP_CLASS时,还是会同样的错误。于是想到将依赖的包和自己的class文件打成一个包,避免找不到类(前提是maven中已经添加了依赖)。
在pom.xml中添加

<build>        <plugins>            <plugin>                <artifactId>maven-assembly-plugin</artifactId>                <configuration>                    <archive>                        <manifest>                            <!--这里要替换成jar包main方法所在类 -->                            <mainClass>InvertedIndex2</mainClass>                        </manifest>                    </archive>                    <descriptorRefs>                        <descriptorRef>jar-with-dependencies</descriptorRef>                    </descriptorRefs>                </configuration>                <executions>                    <execution>                        <id>make-assembly</id> <!-- this is used for inheritance merges -->                        <phase>package</phase> <!-- 指定在打包节点执行jar包合并操作 -->                        <goals>                            <goal>single</goal>                        </goals>                    </execution>                </executions>            </plugin>        </plugins>    </build>

运行mvn package后发现target目录下存在两个文件,其中 *-with-dependencies.jar包含依赖的jar里面的文件和自己的class文件。

阅读全文
0 0
原创粉丝点击