在Eclipse中自动将项目构建到JAR中

Pri*_*ank 169 java eclipse jar

我有一个Eclipse项目,我希望自动将我的Java项目内置到JAR中.我知道我可以选择将项目导出到JAR中; 如果我点击右键; 但我真正想要的是,像Eclipse一样自动构建项目的.class文件并将它们放在目标文件夹中; 它还应该自动构建JAR并在某个或特定位置复制最新的JAR.

是否有以这种方式配置Eclipse的选项,以自动构建JAR?

只是为了让人清楚,耐心地回答我的问题; 我不是把ANT视为解决方案; 因为我已经使用它了,但我希望它可以通过基于时间的触发器或通过更改立即构建来自动启动.

Kon*_*rad 286

你想要一个.jardesc文件.它们不会自动启动,但只需2次点击.

  1. 右键单击您的项目
  2. 选择 Export > Java > JAR file
  3. 选择包含的文件和名称输出JAR,然后单击 Next
  4. 选中"在工作区中保存此JAR的描述",然后选择新.jardesc文件的名称

现在,您所要做的就是右键单击您的.jardesc文件并选择Create JAR,然后将其导出到同一位置.

  • 在Eclipse Galileo中,我不得不用File - > Export - > Java - > JAR文件替换你的第1步. (25认同)
  • 有没有办法自动化"右键单击 - >创建JAR"步骤? (9认同)
  • 双击.jardesc文件也适用于我 (6认同)
  • 我使用"导出... - > Java - > Runnable JAR文件"来创建它. (5认同)
  • 有没有办法自动化"右键单击 - >创建JAR"步骤或将其绑定到一个键组合? (4认同)

Tho*_*att 69

创建一个Ant文件并告诉Eclipse构建它.只有两个步骤,每个步骤都很简单,下面是逐步说明.


步骤1 创建build.xml文件并添加到包资源管理器:

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <jar jarfile="Test.jar" basedir="." includes="*.class" />
  </target>
</project>
Run Code Online (Sandbox Code Playgroud)

Eclipse应该看起来像下面的截图.注意build.xml上的Ant图标. Eclipse Project中的Build.xml

步骤2 右键单击项目中的根节点.- 选择属性 - 选择构建器 - 选择新建 - 选择Ant构建 - 在主选项卡中,完成bin文件夹中build.xml文件的路径.

Ant构建器配置 构建步骤 - 目标选项卡

检查输出

Eclipse输出窗口(名为Console)应在构建后显示以下内容:

Buildfile: /home/<user>/src/Test/build.xml

CreateJar:
         [jar] Building jar: /home/<user>/src/Test/Test.jar
BUILD SUCCESSFUL
Total time: 152 milliseconds
Run Code Online (Sandbox Code Playgroud)

编辑:@yeoman和@betlista的一些有用的评论

@yeoman我认为正确的include是/.class,而不是*.class,因为大多数人都使用包,因此递归搜索类文件比平面包含更有意义

@betlista我建议不要在src文件夹中有build.xml

  • 在尝试了两者之后,这个解决方案似乎比康拉德更好.它需要您手动找出构建文件中的某些路径,但它允许自动构建(而不是2次单击)并允许轻松自定义(例如,在构建后复制jar).以下是如何在根目录中创建一个jar文件并具有多个嵌套级别的包:`<jar jarfile ="dist/mypackage.jar"basedir ="bin /"includes ="**/*.class "/>` (8认同)
  • +1如果这不是被接受的答案,即使是最高票的答案也不是? (3认同)
  • 是的,您可以按照以下步骤选择构建步骤的目标:清理后,手动构建,自动构建和清理期间。自动构建应该给你你想要的东西:) (2认同)
  • 非常感谢你。我建议不要在src文件夹中有`build.xml`,但是其余的都很好,太棒了! (2认同)

小智 27

查看Apache Ant

使用Ant可以使用eclipse进行自动构建,具体如何

  • 2011年7月@Peter引用的文章根本没有讲怎么构建jar文件。 (2认同)
  • 现在它消失了......这就是为什么您应该在答案中重复链接资源中信息的基本部分。 (2认同)

Mic*_*rdt 13

这可以通过在eclipse中定义自定义构建器来实现(请参阅Peter的答案中的链接).但是,除非您的项目非常小,否则可能会使您的工作空间变得无法接受.类文件的autobuild以递增方式发生,即仅重新编译受更改影响的类,但每次保存更改时都必须完全重建和复制JAR文件.


und*_*ore 5

关于彼得的回答和迈克尔的补充,您可能会发现如何在 Eclipse Java 项目中自动生成 .jar 文件很有用。因为即使您的项目中有“*.jardesc”文件,您也必须手动运行它。它可能会稍微降低您的“日食点击麻烦”。