我有一个Eclipse项目,我希望自动将我的Java项目内置到JAR中。我知道我可以选择将项目导出到JAR中;如果我点击右键;但我真正想要的是,像Eclipse一样自动构建项目的.class
文件并将它们放在目标文件夹中;它还应该自动构建JAR并在某个或特定位置复制最新的JAR。
是否可以选择以这种方式配置Eclipse,以自动构建JAR?
只是为了清楚地告诉那些人,耐心地回答我的问题;我不是把ANT视为解决方案;因为我已经使用它了,但是我希望它可以通过基于时间的触发器或通过更改立即构建来自动启动。
答案 0 :(得分:283)
您想要一个.jardesc
文件。它们不会自动启动,但只需2次点击。
Export > Java > JAR file
Next
.jardesc
文件的名称现在,您所要做的就是右键单击.jardesc
文件,然后选择Create JAR
,它会将其导出到同一位置。
答案 1 :(得分:68)
创建一个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 Build - 在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的一些有用的评论
@yeoman我认为正确的include会是/.class,而不是* .class 人们使用包,因此递归搜索类文件 比平面包含更有意义
@betlista我建议不要在src文件夹中使用build.xml
答案 2 :(得分:27)
可以使用Ant进行自动构建,使用eclipse here's how
答案 3 :(得分:13)
这可以通过在eclipse中定义自定义构建器来实现(请参阅Peter的答案中的链接)。但是,除非您的项目非常小,否则可能会使您的工作空间变得无法接受。类文件的Autobuild以递增方式发生,即仅重新编译受更改影响的类,但每次保存更改时都必须完全重建和复制JAR文件。
答案 4 :(得分:4)
关于彼得的回答和Micheal的补充,你可能会发现How Do I Automatically Generate A .jar File In An Eclipse Java Project很有用。因为即使您的项目中有“* .jardesc”文件,您也必须手动运行它。它可以稍微冷却你的“日食点击麻烦”。
答案 5 :(得分:1)
使用 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文件。)
答案 6 :(得分:0)
创建构建器启动器是一个问题,因为2个项目不能具有相同的外部工具构建名称。每个名称都必须是唯一的。我目前正面临这个问题,以自动化我的构建并将JAR复制到外部位置。
我正在使用IBM的Zip Builder,但这只是一个帮助,但没有做到真实。
人们可以尝试使用IBM ZIP Creation插件。 http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer2.html#download