在命令行运行:mvn package
在eclipse中运行不需要加mvn,直接package
下面方法全部都是本人亲手操作试验可行的方法:
方法一:maven-assembly-plugin(http://blog.csdn.net/defonds/article/details/43233131)
maven-assembly-plugin:插件存在一个bug,解决方法请参考上面链接
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.hkex.spider.Main</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>
其中<mainClass></mainClass>的值表示此工程的入口类,也就是包含main方法的类。配置完pom后可以通过执行mvn assembly:assembly命令来启动插件进行构建。构建成功后会生成jar包,这样我们就可以在命令行中通过java -jar XXX.jar来运行jar件了。 appendAssemblyId属性控制是否在生成的打包文件的文件名中包含assembly id。 descriptor属性指定maven-assembly-plugin的配置文件,execution的设置是为了将maven-assembly-plugin继承到标准的maven打包过程中,这样在运行maven-package时就会执行maven-assembly-plugin的操作,
(关于自定义打包要求见:使用assembly plugin实现自定义打包)
方法二:将以来的jar包copy出来
运行:mvn dependency:copy-dependencies(mvn 插件名:goal)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<excludeTransitive>false</excludeTransitive>
<span style="white-space:pre"> </span><stripVersion>true</stripVersion>
</configuration>
</execution>
</executions>
</plugin>
copy可以的配置的项比较多,详细的请参考:copy配置
<outputDirectory>${project.build.directory}/lib</outputDirectory>中
${project.build.directory}
是指当前工程的target目录。lib文件夹下会放置所有依赖的jar包。
excludeTransitive,表示是否不包含间接依赖的包;
stripVersion表示复制的jar文件去掉版本信息
关于该插件更详细的说明:maven-dependency-plugin插件的使用
还有一个比较笨的办法,就是到本地仓库中去找(maven dependencies中有jar包的路径 )