在 Eclipse 中自动将项目构建到 JAR 中
Posted
技术标签:
【中文标题】在 Eclipse 中自动将项目构建到 JAR 中【英文标题】:Build project into a JAR automatically in Eclipse 【发布时间】:2010-11-06 23:16:47 【问题描述】:我有一个 Eclipse 项目,我想将我的 Java 项目自动构建到 JAR 中。我知道我可以选择将项目导出到 JAR 中;如果我右键单击;但我真正想要的是,像 Eclipse 一样自动构建项目的 .class
文件并将它们放在目标文件夹中;它还应该自动构建一个 JAR 并在某个或特定位置复制最新的 JAR。
是否可以选择以这种方式配置 Eclipse 以自动构建 JAR?
只是为了让大家清楚,耐心回答我的问题;我没有将 ANT 视为解决方案;因为我已经在使用它了,但是我希望它可以通过基于时间的触发器或通过更改立即构建来自动启动。
【问题讨论】:
我的个人意见:使用m2e,Eclipse的maven集成,所以它会为你输出一个jar作为构建的一部分。我最近尝试在没有 Maven 的情况下使用 Eclipse,无法相信基本的 Java 构建器是多么原始。 对于 2018 年,使用构建工具而不是 IDE 特定功能。 Maven 为您提供 IDE 独立性和命令行支持。 @Craig Ringer - 有没有关于如何做到这一点的链接? 【参考方案1】:创建一个 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 图标。
第 2 步 右键单击项目中的根节点。 - 选择属性 - 选择建设者 - 选择新 - 选择 Ant 构建 - 在 Main 选项卡中,填写 bin 文件夹中 build.xml 文件的路径。
检查输出
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 提供的一些有用的 cmets
@yeoman 我认为正确的包含是 /.class,而不是 *.class,因为大多数 人们使用包,因此递归搜索类文件使得 比平面包容更有意义
@betlista 我建议不要在 src 文件夹中包含 build.xml
【讨论】:
是的,您可以选择以下构建步骤的目标:清理后、手动构建、自动构建和清理期间。自动构建应该给你你想要的:) 在尝试了这两种方法之后,这个解决方案似乎比 Konrad 的要好得多。它需要您手动找出构建文件中的一些路径,但它允许自动构建(而不是单击 2 次)并允许轻松自定义(例如,在构建后复制 jar)。以下是当构建文件位于根目录并具有多个嵌套级别的包时如何构建 jar 文件:<jar jarfile="dist/mypackage.jar" basedir="bin/" includes="**/*.class" />
+1 这不是公认的答案,甚至不是投票最多的答案吗?
非常感谢。我建议不要在 src 文件夹中包含 build.xml
,但其余的工作正常,太棒了!
我认为正确的包含应该是 /.class,而不是 *.class,因为大多数人使用包,因此递归搜索类文件比平面包含更有意义。在那之前会删除我的 +1,因为答案通常不会按现在的样子工作。【参考方案2】:
您想要一个.jardesc
文件。它们不会自动启动,但只需单击 2 次即可。
-
右键单击您的项目
选择
Export > Java > JAR file
选择包含的文件并命名输出JAR,然后点击Next
选中“在工作区中保存此 JAR 的描述”并为新的 .jardesc
文件选择一个名称
现在,您只需右键单击您的.jardesc
文件并选择Create JAR
,它就会将其导出到同一位置。
【讨论】:
很遗憾,这个答案几个月前没有得到更多的支持(或最佳答案)。哦,好吧,现在康拉德已经走了。 在 Eclipse Galileo 中,我不得不将您的步骤 1 替换为 File -> Export -> Java -> JAR 文件。 有没有办法自动执行“右键单击 -> 创建 JAR”步骤? 有没有办法自动执行“右键单击 -> 创建 JAR”步骤或将其绑定到组合键? 我使用“导出... -> Java -> 可运行的 JAR 文件”来创建它。【参考方案3】:创建构建器启动器是一个问题,因为 2 个项目不能具有相同的外部工具构建名称。每个名称都必须是唯一的。我目前正面临这个问题,以自动化我的构建并将 JAR 复制到外部位置。
我正在使用 IBM 的 Zip Builder,但这只是一个帮助,而不是真正的。
人们可以尝试使用 IBM ZIP Creation 插件。 http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer2.html#download
【讨论】:
【参考方案4】:使用 Thomas Bratt 的上述答案,只需确保您的 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 文件。)
【讨论】:
【参考方案5】:关于 Peter 的回答和 Micheal 的补充,您可能会发现 How Do I Automatically Generate A .jar File In An Eclipse Java Project 很有用。因为即使您的项目中有“*.jardesc”文件,您也必须手动运行它。它可能会稍微降低您的“日食点击麻烦”。
【讨论】:
【参考方案6】:这可以通过在 Eclipse 中定义一个自定义 Builder 来实现(请参阅彼得答案中的链接)。但是,除非您的项目非常小,否则它可能会不可接受地减慢您的工作空间。类文件的自动构建以增量方式进行,即仅重新编译受更改影响的那些类,但每次保存更改时都必须重新构建和复制 JAR 文件。
【讨论】:
【参考方案7】:查看Apache Ant
可以通过 Eclipse 使用 Ant 进行自动构建,here's how
【讨论】:
我已经在使用 Apache ant 进行构建并制作 Jar。但我真正在寻找的是一种绕过 apache ant 的方法,并直接使用 eclipse。 抱歉,我之前没有浏览链接中的文章。它确实谈到了我的需要。谢谢。 Konrad 的回答更符合 OP 的要求。 2011年7月,@Peter引用的文章根本没有讲如何构建jar文件。 现在它已经消失了......这就是为什么您应该在答案中重复链接资源中信息的基本部分。以上是关于在 Eclipse 中自动将项目构建到 JAR 中的主要内容,如果未能解决你的问题,请参考以下文章
已经搭建好java项目,如何直接将maven本地仓库中的所有jar通过pom直接引入