47

我有一个 Eclipse Java 项目。它包含一个名为“dist”的文件夹。该文件夹中有一个 .jar 文件。

如何在此项目中进行设置以确保在重新编译项目中的 .java 文件之一时更新此 .jar 文件?

谢谢。

4

5 回答 5

36

创建一个 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>

Eclipse 应该类似于下面的屏幕截图。请注意 build.xml 上的 Ant 图标。 Eclipse 项目中的 Build.xml

步骤 2 右键单击​​项目中的根节点。- 选择 Properties - 选择 Builders - 选择 New - 选择 Ant Build - 在 Main 选项卡中,填写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
于 2012-08-30T14:44:03.927 回答
17

您可以定义一个运行 jar 任务的 Ant 构建器来 jar 项目中的所有类文件(使用“ Refresh project upon completion”设置。)

替代文字

(另请参阅“为您的 Eclipse 项目定制构建”)

请参阅 IBM 文章:如何以及为什么要创建自定义 Ant 任务

替代文字

于 2009-07-13T14:48:18.100 回答
4

一种常见的模式是针对项目中的类文件工作(项目可以添加到其他项目构建路径并在测试时在运行时使用),因此在开发过程中您实际上不需要 jar 文件。

添加自动构建步骤的一般方法是编写一个 ant 脚本,将其包含在您的项目中,然后您可以将您的 ant 脚本的执行包含在项目的构建中。因此,由于 ant 有一个非常简单的 jar 构建任务,如果您确实需要 jar 文件,这并不费力。首发。

于 2009-07-13T14:24:46.860 回答
2

创建一个 J2EE 实用程序项目 (Util)。它允许您创建与 J2EE 项目 (ProjectX) 的关联。当您编辑 ProjectX 的属性以依赖于 Util 项目时,它会将 Util 显示为 Util.jar。声明了依赖项后,Eclipse 将在必须构建 Util 项目时构建 Util.jar。如果您为 Util 项目启用了自动构建,则 .jar 文件将在每次构建项目时保持同步。如果您的目标项目不是 J2EE 项目,您仍然可以使用此解决方案,但使用虚拟 J2EE 父项目。

这是使用 ANT 任务从 Eclipse 中构建 .zip 文件的帮助页面的链接:http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.pde.doc。用户/任务/pde_feature_generating_ant.htm

另一种解决方案是使用 Zip 插件。我们在 5 年前就使用了它,但是当 WSAD 包含对依赖项目的支持作为 .jar 文件时就停止了。

于 2009-07-13T15:12:52.180 回答
0

Thomas 的回答有效,但它生成的 jar 文件不是您可以用来实际运行应用程序的文件。

我最终得到:

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TDSz Data Mover" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <delete file="DataMover.jar"/>
        <jar jarfile="DataMover.jar" basedir="bin/" includes="**/*.class **/Messages*.*" " update="no">
            <zipfileset dir="D:/Java/mylib" erroronmissingarchive="true">
                <include name="*.jar" />
            </zipfileset>  
            <manifest>
                <attribute name="Main-Class" value="some.package.and.app"/>
            </manifest>             
        </jar>
  </target>
</project>

不知道自从给出这个答案以来,ant 中是否发生了一些变化,但是需要一些挖掘才能真正让它工作。教程中的许多解决方案只是部分答案......

主要变化:

  • 为 jar 文件添加了一个删除,因为当我在更改构建文件后重新运行 ant 构建时它没有重新生成它。
  • 添加了一个清单以正确设置可执行文件。
  • 拉入一些 .jar 文件作为库
  • 拉入 Message_ 文件以获得 NLS 支持

Netbeans 使这变得非常容易 - 只需选中几个框。

[编辑以解决错误终止的 jar 标记并拉入 .jar 文件的问题]

于 2018-02-22T05:27:22.593 回答