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

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

是否可以选择以这种方式配置 Eclipse,以自动构建 JAR?

只是为了让大家明白,耐心地回答我的问题; 我不把 ANT 看作是解决方案; 因为我已经使用它了,但我希望它能自动启动一个基于时间的触发器或立即修改构建。

226533 次浏览

看看 阿帕奇蚂蚁

可以使用 Ant 进行 Eclipse 的自动构建,即 方法是这样的

这可以通过在 eclipse 中定义一个自定义 Builder 来实现(参见 Peter 的答案中的链接)。但是,除非您的项目非常小,否则它可能会令您的工作空间变得非常慢。类文件的自动构建是递增的,也就是说,只有那些受到更改影响的类才会被重新编译,但是每次保存更改时,JAR 文件都必须重新构建并完全复制。

你想要一个 .jardesc文件。他们不会自动启动,但它在2点击范围内。

  1. 右键单击您的项目
  2. 选择 Export > Java > JAR file
  3. 选择包含的文件和名称输出 JAR,然后单击 Next
  4. 选中“ Save the description of this JAR in the workspace”并为新的 .jardesc文件选择一个名称

现在,所有你需要做的就是右键单击你的 .jardesc文件并选择 Create JAR,它将导出它在同一点。

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

创建一个 Ant 文件并告诉 Eclipse 构建它。只有两个步骤,每个步骤都很容易与下面的一步一步的指示。


第一步 创建 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>

Eclipse 应该类似于下面的屏幕截图。 Build.xml in Eclipse Project

第二步 右键单击项目中的根节点。 - 选择属性 - 选择生成器 - 选择「新建」 - 选择 Ant Build - 在 Main 选项卡中,完成 垃圾箱文件夹中 build.xml 文件的路径。

Ant builder configuration Build step - Targets Tab

检查输出

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

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

@ yeoman 我认为正确的包含应该是/. class,而不是 * . class 人们使用包,因此递归搜索类文件使 比扁平包容更有意义

@ betlista 我要重新注释,不要在 src 文件夹中有 build.xml

使用上面的 托马斯 · 布拉特答案,只需确保 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="bin/" includes="**/*.class" />
</target>
</project>

(注意 双星号-它会告诉 build 在所有子目录中查找. class 文件。)

创建一个构建器启动程序是一个问题,因为两个项目不能有相同的外部工具构建名称。每个名字都必须是唯一的。我目前正面临这个问题,需要自动构建并将 JAR 复制到外部位置。

我使用的是 IBM 的 Zip Builder,但这只是一种帮助,而不是真正的帮助。

人们可以尝试使用 IBMZIPCreationplugin。 Http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer2.html#download