据我所知,FatJar是一个基于OSGi框架的Eclipse插件。我相信这使得在OSGi平台之外使用它变得很困难。此外,看一下反编译的FatJar,它似乎需要大量的OSGi和Eclipse类,例如org.eclipse.jdt.core.IJavaProject和org.osgi.framework.BundleContext。
因此,在这一切之前,我想知道是否有任何方法可以在Hudson中使用我们宝贵的*.fatjar文件(使用脚本或其他任何方式)。
欢迎任何好的建议!谢谢!
发布于 2010-11-22 06:28:29
经过更多的工作和研究,似乎即使FatJar主要是一个Eclipse插件,也可以很容易地将其集成到持续集成服务器中。
在我的例子中,使用Ant,我发现可以使用以下代码(最初来自this site)在Eclipse外部运行FatJar插件。
<project name="FatJar MySuperDuperClass.jar (experimental)" default="main" basedir=".">
<!-- this file was created by Fat-Jar Eclipse Plug-in -->
<!-- the ANT-Export is in a very early stage, so this -->
<!-- is only experimental, ANT 1.6 or above is -->
<!-- required, feedback is always welcome: -->
<!-- http://sourceforge.net/projects/fjep -->
<!-- uncomment the following lines if using ANT outside Eclipse -->
<!--
<property name="fjepPath" value="plugins/net.sf.fjep.fatjar_0.0.31/fatjar.jar"/>
<taskdef name="fatjar.build" classname="net.sf.fjep.anttask.FJBuildTask" classpath="${fjepPath}"/>
<typedef name="fatjar.manifest" classname="net.sf.fjep.anttask.FJManifestType" classpath="${fjepPath}"/>
<typedef name="fatjar.exclude" classname="net.sf.fjep.anttask.FJExcludeType" classpath="${fjepPath}"/>
<typedef name="fatjar.jarsource" classname="net.sf.fjep.anttask.FJJarSourceType" classpath="${fjepPath}"/>
<typedef name="fatjar.filesource" classname="net.sf.fjep.anttask.FJFileSourceType" classpath="${fjepPath}"/>
-->
<!-- uncomment the above lines to use ANT outside of Eclipse -->
<target name="main">
<fatjar.build output="MySuperDuperClass.jar">
<fatjar.manifest mainclass="de.schwobeseggl.test.MySuperDuperClass"/>
<fatjar.filesource path="bin" relpath=""/>
<fatjar.jarsource file="lib/commons-cli.jar" relpath=""/>
<fatjar.jarsource file="lib/jbossall-client.jar" relpath=""/>
<fatjar.jarsource file="lib/junit.jar" relpath=""/>
<fatjar.jarsource file="lib/log4j.jar" relpath=""/>
<fatjar.jarsource file="lib/jdom.jar" relpath=""/>
</fatjar.build>
</target>
</project>我在开始时取消了6行代码块的注释,它工作得很好。阅读顶部的评论,这似乎是使用FatJar本身导出的,但不知道怎么做。我只是根据我的用例调整了这个示例。
发布于 2010-11-08 06:32:02
FatJar是一个提供one-jar功能的Eclipse插件。在Eclipse之外,您只需直接使用one-jar。
http://one-jar.sourceforge.net/
请注意,Eclipse复杂化过程并不容易编写脚本。我已经使用ant4eclipse在Ant中做到了这一点,我建议不要使用它。编辑:从2015年开始,你应该关注Maven项目,而不是普通的Eclipse。
发布于 2010-11-08 06:40:03
我的建议是寻找一种可以与您的构建工具一起工作的FatJar的替代品。
Ant,您可以按照解包、复制和压缩任务的适当顺序来完成这项工作。
https://stackoverflow.com/questions/4119566
复制相似问题