2009-07-13 67 views
44

我有一个Eclipse Java项目。它包含一个名为“dist”的文件夹。在那个文件夹中是一个.jar文件。如何在Eclipse Java项目中自动生成.jar文件

我该如何设置这个项目中的内容,以确保这个.jar文件在项目中的某个.java文件被重新编译时更新?

谢谢。

+0

重复http://stackoverflow.com/questions/1062941/build-project-into-a-jar-automatically的-in-eclipse – 2011-07-27 01:03:15

回答

4

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

添加自动构建步骤的常规方法是编写一个ant脚本,将其包含在您的项目中,然后您可以执行包含在项目构建中的ant脚本。因此,如果ant有一个非常直接的jar构建任务,那么如果您始终需要jar文件,那么这不会太费力。 See为首发。

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.user/tasks/pde_feature_generating_ant.htm

另一种解决方法是使用邮编插件。我们在5年前使用过这个功能,但当WSAD将依赖项目的支持包含为.jar文件时就停止了。

34

创建一个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图标。 Build.xml in Eclipse Project

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

Ant builder configuration Build step - Targets Tab

检查输出

Eclipse的输出窗口(称为控制台)应显示生成后如下:

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

CreateJar: 
     [jar] Building jar: /home/<user>/src/Test/Test.jar 
BUILD SUCCESSFUL 
Total time: 152 milliseconds 
+1

这对我来说非常合适。这应该被标记为正确答案。 – cgTag 2012-09-18 21:48:48

0

托马斯的回答工作,但罐子它生成的文件不是可以用来实际运行应用程序的文件。

我结束了:

<?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> 

不知道如果事情在蚂蚁已经改变,因为这个答案给出,但它采取了一些挖掘真正得到它的工作。很多教程的解决方案只有部分答案...

的主要变化:

  • 增加了一个JAR文件中删除,因为它没有再生,当我 改变后重新运行Ant构建构建文件。
  • 添加了一个清单来正确设置可执行文件。
  • 拉一些.jar文件作为库
  • 拉的讯息:文件NLS支持

Netbeans的使这个容易得多 - 只是检查了几个箱子。

[编辑,以解决问题与不正确地终止罐子的标签,并在.jar文件拉]

相关问题