首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在持续集成服务器中使用FatJar (out of Eclipse)?

如何在持续集成服务器中使用FatJar (out of Eclipse)?
EN

Stack Overflow用户
提问于 2010-11-08 04:38:58
回答 4查看 7.3K关注 0票数 1

据我所知,FatJar是一个基于OSGi框架的Eclipse插件。我相信这使得在OSGi平台之外使用它变得很困难。此外,看一下反编译的FatJar,它似乎需要大量的OSGi和Eclipse类,例如org.eclipse.jdt.core.IJavaProjectorg.osgi.framework.BundleContext

因此,在这一切之前,我想知道是否有任何方法可以在Hudson中使用我们宝贵的*.fatjar文件(使用脚本或其他任何方式)。

欢迎任何好的建议!谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-22 06:28:29

经过更多的工作和研究,似乎即使FatJar主要是一个Eclipse插件,也可以很容易地将其集成到持续集成服务器中。

在我的例子中,使用Ant,我发现可以使用以下代码(最初来自this site)在Eclipse外部运行FatJar插件。

代码语言:javascript
复制
<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本身导出的,但不知道怎么做。我只是根据我的用例调整了这个示例。

票数 2
EN

Stack Overflow用户

发布于 2010-11-08 06:32:02

FatJar是一个提供one-jar功能的Eclipse插件。在Eclipse之外,您只需直接使用one-jar。

http://one-jar.sourceforge.net/

请注意,Eclipse复杂化过程并不容易编写脚本。我已经使用ant4eclipse在Ant中做到了这一点,我建议不要使用它。编辑:从2015年开始,你应该关注Maven项目,而不是普通的Eclipse。

票数 2
EN

Stack Overflow用户

发布于 2010-11-08 06:40:03

我的建议是寻找一种可以与您的构建工具一起工作的FatJar的替代品。

  • 如果你使用的是Maven,请看一下shade插件。对于

Ant,您可以按照解包、复制和压缩任务的适当顺序来完成这项工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4119566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档