Java 仅使用ant运行NetBeans项目

Java 仅使用ant运行NetBeans项目,java,netbeans,ant,sample,Java,Netbeans,Ant,Sample,我有一个用Netbeans构建的示例代码 它有一个build.xml文件,所以我下载了ant并尝试运行它 我收到了以下错误消息: ...... nbproject\build-impl.xml:76: Platform is not correctly set up 就我所见,这是通过“简单地”下载Netbeans并从那里运行示例来修复的,但是。。。我不想安装它来运行10个文件的示例 使用Java运行Netbeans项目是否有解决方法?我必须修改的正确的.properties文件是什么?可以直

我有一个用Netbeans构建的示例代码

它有一个build.xml文件,所以我下载了ant并尝试运行它

我收到了以下错误消息:

...... nbproject\build-impl.xml:76: Platform is not correctly set up
就我所见,这是通过“简单地”下载Netbeans并从那里运行示例来修复的,但是。。。我不想安装它来运行10个文件的示例


使用Java运行Netbeans项目是否有解决方法?我必须修改的正确的.properties文件是什么?

可以直接从Java/ANT运行NetBeans生成的项目,但是您可能需要手动设置一些属性和/或向jar文件添加路径

不幸的是,NetBeans倾向于使用自己的JAR文件和引用属性包含taskdef,这些属性仅在
/nbproject/private/private.properties
文件中定义,通常在您首次打开NetBeans项目时设置,或在IDE中编辑项目时修改

如果检查
build impl.xml
,应该能够找到属性并导出需要设置的值(操作系统平台),那么:

  • 在中创建/设置属性
    /nbproject/private.properties
  • 将该特性定义添加到 父级
    build.xml
  • 在调用ant时传入命令行 目标使用
    -DPlatform=Foo
就我个人而言,我喜欢NetBeans生成的ANT文件和目标的结构,但讨厌它们塞进了多少定制/专有的东西,这使得没有NetBeans很难运行

例如:

ant -Dplatforms.JDK_1.7.home=/opt/jdk 
只是想补充一下答案。。。通常,您需要在目标计算机上至少安装并打开一次Netbeans。ANT项目还依赖于USERDIR/.netbeans/.中的一些设置。。。目录6.5+可能会改变这一点


这将配置一些基本设置,并定义到netbeans JAR的类路径。如果自上次在Netbeans中打开项目以来,您的依赖项(即库)或项目是从不同的目录运行的,那么您需要调整private.properties文件中的一些设置,如Mads所述。

我刚刚用ant成功构建了Netbeans项目。这些是我必须做的事情:

  • /java2/ant复制到一台“无Netbeanless”机器上
  • 将nbproject/project.properties复制到ant.properties
  • 将ant.properties中的每个${}表达式替换为它的值
  • 添加平台。
    .home=
  • 添加libs.CopyLibs.classpath=
    /extra/org-netbeans-modules-java-j2seproject-copylibtask.jar
  • 将其他需要的类路径添加到javac.classpath中(例如ServletAPI.jar的路径)
  • ant-propertyfile ant.properties

它起作用了,但不能让我快乐。我想找到重用project.properties的方法,或者自动将其转换为“已解决”版本(步骤3)。构建可以自动化。

我使用的是Netbeans 6.8,使用Netbeans创建的java项目可以从Netbeans自动生成的构建文件运行,只需在cli上使用ant即可。所有常规目标,如
antcompile
antrun
antclean
,等等,都是“正常工作”。(如果有必要的话,我正在使用Fedora13)

我刚刚用我的NetBeans 7.0项目完成了这个练习。我所能做的就是从Windows系统上的.netbeans\7.0目录复制build.properties文件,并为我的构建服务器创建一个server.properties文件。这并不是一个很大的扩展,因为每个开发人员的build.properties可能会有所不同,所以服务器需要另一个文件。然后,我创建了一个简单的server-build.xml文件,该文件引用了这个文件,并且只执行init、compile、dist和clean的基本操作。我将这两个文件提交到我的项目目录顶层的CVS存储库中,因为它们不会与其他项目文件冲突,并在需要更新时作为提醒。现在我可以用“ant-fserver build.xml”在我的CI服务器上构建我的项目,一切正常

我的整个init部分看起来是这样的,给了我的服务器路径优先级,但包括了来自NetBeans项目属性的必要信息

<target name="init">
    <property file="server.properties"/>
    <property file="nbproject/project.properties"/>
</target>

在为嵌套项目定义ant任务时,我还必须执行类似的操作:

<target name="compile">
    <ant antfile="${project.MyProj-common}/build.xml" inheritall="false" target="jar">
        <property location="${build.dir}" name="dist.ear.dir"/>
        <property file="server.properties"/>
        <property file="${project.MyProj-common}/nbproject/project.properties"/>
    </ant>
    ...
</target>

...
我必须将j2ee.platform.classpath从project.properties复制到我的server.properties文件中,以确保对j2ee.server.home的引用在我需要时得到解析。我没有料到必须这样做,但否则类路径是错误的,导致构建失败


感谢您提供关于这个问题的信息,因为它帮助我找到了这个解决方案。

我刚刚遇到了同样的问题。我希望我能摆脱netbeans,去eclipse和maven,就为了这个

但是要将ant构建的项目从netbeans导出到持续集成服务器(或者也可以导出到任何其他IDE)

技术进展很顺利。以下是总结:

  • 在CI服务器上安装netbeans(可以选择不使用gui,在netbeans安装程序上使用
    -silent
  • 在SVN中包含
    nbproject
  • 添加以忽略私人文件夹列表
  • 在CI服务器上创建您自己的专用文件夹
  • 将其指向CI服务器的文件夹(模拟用于CI的帐户中的私人用户文件夹)
  • 将真实文件夹从用户复制到此文件夹,并更改每个路径(替换字符串)以指向在CI服务器上安装的netbeans

  • 而且它应该会起作用。

    你可以为此使用此回购协议

    它克服了netbeans包装的ant config的所有奇怪之处,因此您只需要:

    汇编:

    $ ant.sh compile
    
    要运行:

    $ ant.sh run
    
    无论什么(自动完成):

    $ant.sh
    
    好的。我知道我必须手动设置
    $ ant.sh <tab><tab>