<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/post//</link>
<title><![CDATA[利用assembly插件将maven项目打包成可执行的jar]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[编程杂谈]]></category>
<pubDate>Tue, 15 Nov 2016 09:06:56 +0000</pubDate> 
<guid>https://www.heckjj.com/post//</guid> 
<description>
<![CDATA[ 
	最近写有个项目直接用jar启动，是基于 maven 的一个 Java 程序，希望通过 maven 打包成一个可以执行的 jar 文件。在使用 mvn install 将 java 项目打包时发现，只有自己写的代码被打包到 jar 文件中，调用的依赖项并没打包在 jar 文件中。单独把 jar 文件拿出来执行，会出现 NoClassDefFoundError，异常信息如下：<br/><br/><textarea name="code" class="java" rows="15" cols="100">Exception in thread "main" java.lang.NoClassDefFoundError: org/kohsuke/github/GitHub
 at git.frank.issues.Issues.statIssues(Issues.java:26)
 at git.frank.Main.main(Main.java:27)
Caused by: java.lang.ClassNotFoundException: org.kohsuke.github.GitHub
 at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
 ... 2 more</textarea><br/>解决方案:<br/>pom.xml 添加 assembly 插件<br/><textarea name="code" class="xml" rows="15" cols="100">
<plugin> 
&nbsp;&nbsp;<groupId>org.apache.maven.plugins</groupId> 
&nbsp;&nbsp;<artifactId>maven-assembly-plugin</artifactId> 
&nbsp;&nbsp;<version>2.4</version> 
&nbsp;&nbsp;<configuration>
&nbsp;&nbsp;&nbsp;&nbsp;<archive>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<manifest>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<!-- 程序入口 -->
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<mainClass>git.frank.Main</mainClass>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</manifest>
&nbsp;&nbsp;&nbsp;&nbsp;</archive>
&nbsp;&nbsp;&nbsp;&nbsp;<descriptorRefs>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<descriptorRef>jar-with-dependencies</descriptorRef>
&nbsp;&nbsp;&nbsp;&nbsp;</descriptorRefs>
&nbsp;&nbsp;</configuration>
</plugin></textarea><br/>执行 mvn assembly:assembly 即可。<br/>其中 github-jar-with-dependencies.jar 是一个可以独立执行的 jar 文件。
]]>
</description>
</item><item>
<link>https://www.heckjj.com/post//#blogcomment</link>
<title><![CDATA[[评论] 利用assembly插件将maven项目打包成可执行的jar]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>