20

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

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

我收到此错误消息:

...... nbproject\build-impl.xml:76: Platform is not correctly set up

就我所见,这是通过“简单地”下载 Netbeans 并从那里运行示例来解决的,但是......我不想安装它来运行 10 个文件的示例。

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

4

7 回答 7

12

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

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

如果您检查,build-impl.xml您应该能够找到该属性并得出需要设置的值(OS 平台),然后:

  • /nbproject/private.properties
  • 在父级中添加该属性定义build.xml
  • 使用调用你的 ant 目标时传入命令行-DPlatform=Foo

就个人而言,我喜欢 NetBeans 生成的 ANT 文件和目标的结构,但讨厌它们塞入了多少自定义/专有的东西,这使得没有 NetBeans 就很难运行。

例如:

ant -Dplatforms.JDK_1.7.home=/opt/jdk 
于 2009-05-27T01:00:41.130 回答
4

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

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

它有效,但不会让我开心。我想找到重用 project.properties 的方法,或者自动将其转换为“已解决”版本(第 3 步)。然后可以自动化构建。

于 2009-08-29T10:06:52.077 回答
1

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

我的整个初始化部分看起来像这样,优先考虑我的服务器路径,但包括来自 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 的引用。我没想到必须这样做,但否则类路径是错误的,导致构建失败。

感谢您提供有关此问题的信息,因为它帮助指导我找到此解决方案。

于 2011-09-19T19:19:55.460 回答
1

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

但是这里有一个很好的链接,可以将 ant 构建的项目从 netbeans 导出到持续集成服务器(或者也可以导出到任何其他 IDE)。

技术进展得很顺利。这是一个摘要:

  1. 在 CI 服务器上安装 netbeans(有一个选项可以在没有 gui 的情况下进行,-silent在 netbeans 安装程序上使用)
  2. 包含nbproject在 SVN 中
  3. 添加到忽略列表的私人文件夹
  4. 在 CI 服务器上创建您自己的私有文件夹
  5. 使其指向 CI 服务器的文件夹(模仿用于 CI 的帐户中的私有用户文件夹)
  6. 将用户的真实文件夹复制到该文件夹​​并更改每个路径(替换字符串)以指向您在 CI 服务器上安装的 netbeans。

它应该工作。

于 2011-11-17T18:57:18.397 回答
0

我正在使用 Netbeans 6.8,使用 Netbeans 创建的 java 项目可以从 Netbeans 自动生成的构建文件中运行,而 cli 上只有 ant。所有常规目标,如ant compile, ant run,ant clean等都“正常工作”。(如果这很重要,我正在使用 Fedora 13)

于 2010-10-15T14:50:58.880 回答
0

只是为了添加到Mads 的答案......通常,您需要在目标计算机上至少安装和打开一次 Netbeans。ANT 项目还依赖于 USERDIR/.netbeans/... 目录中的一些设置。这可能会随着 6.5+ 而改变。

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

于 2009-05-27T15:36:08.680 回答
-1

你可以使用这个 repo 只是为了那个https://github.com/albfan/ant-netbeans

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

编译:

$ ant.sh compile

跑步:

$ ant.sh run

到任何东西(自动完成):

$ ant.sh <tab><tab>
于 2017-06-27T20:19:00.137 回答