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

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

<build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-pluginartifactId>
                <configuration>
                    <archive>
                        <manifest>
                            
                            <mainClass>InvertedIndex2mainClass>
                        manifest>
                    archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependenciesdescriptorRef>
                    descriptorRefs>
                configuration>
                <executions>
                    <execution>
                        <id>make-assemblyid> 
                        <phase>packagephase> 
                        <goals>
                            <goal>singlegoal>
                        goals>
                    execution>
                executions>
            plugin>
        plugins>
    build>

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

你可能感兴趣的:(tools)