我有一个使用Netbeans构建的示例代码。
它有一个build.xml文件,所以我下载了ant并尝试运行它。
我收到此错误消息:
...... nbproject\build-impl.xml:76: Platform is not correctly set up
我可以看到,这可以通过“简单地”下载Netbeans并从那里运行示例来解决,但是......我不想安装它来运行10个文件样本。
是否有使用Java运行Netbeans项目的解决方法?什么是我必须修改的正确.properties文件?
答案 0 :(得分:12)
可以直接从Java / ANT运行NetBeans生成的项目,但您可能需要手动设置一些属性和/或添加jar文件的路径。
不幸的是,NetBeans倾向于使用自己的JAR文件和仅在/nbproject/private/private.properties
文件中定义的引用属性来包含taskdef,这些文件通常在您第一次打开NetBeans项目时设置或在您编辑项目时进行修改IDE。
如果您检查build-impl.xml
,您应该能够找到该属性并获得需要设置的值(OS平台),那么:
/nbproject/private.properties
build.xml
-DPlatform=Foo
就个人而言,我喜欢NetBeans生成的ANT文件和目标的结构,但是他们讨厌有多少自定义/专有内容,这使得没有NetBeans很难运行。
例如:
ant -Dplatforms.JDK_1.7.home=/opt/jdk
答案 1 :(得分:3)
我刚刚用ant成功构建了NetBeans项目。这些是我必须做的事情:
<NetBeans-folder>
/ java2 / ant复制到“Netbeanless”计算机<platform-name>
.home = <path to platform>
<path to nb-ant>
/ extra / org-netbeans-modules-java-j2seproject-copylibtask.jar ant -propertyfile ant.properties
它有效,但不会让我开心。我想要找到重用project.properties的方法,或者自动将其转换为“已解析”版本(步骤3)。然后可以自动构建。
答案 2 :(得分: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服务器上构建我的项目,一切正常。
我的整个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>
我不得不将project.properties中的j2ee.platform.classpath复制到我的server.properties文件中,以确保根据需要解析对j2ee.server.home的引用。我没想到必须这样做,但是类路径错了,导致构建失败。
感谢您提供有关此问题的信息,因为它有助于我指导此解决方案。
答案 3 :(得分:1)
我刚遇到同样的问题。我希望我可以摆脱netbeans去eclipse和maven,就这样。
但here is a good link将netbeans中的ant构建项目导出到持续集成服务器中(或者也可以导入到任何其他IDE中)。
技术进展顺利。以下是摘要:
-silent
)nbproject
它应该有用。
答案 4 :(得分:0)
只需添加到Mads'答案...通常,您需要在目标计算机上至少安装和打开一次Netbeans。 ANT项目还依赖于USERDIR / .netbeans / ...目录中的一些设置。这可能已经改变了6.5 +。
这将获得一些配置的基本设置,并将类路径定义为netbeans jar。如果自上次在Netbeans中打开项目以来,您的依赖项(即库)或项目是从不同的目录运行的,则需要调整private.properties文件中的一些设置,如Mads所描述的那样。
答案 5 :(得分:0)
我正在使用Netbeans 6.8,使用Netbeans创建的java项目可以从Netbeans自动生成的构建文件中运行,而cli上只有ant。所有常规目标,例如ant compile
,ant run
,ant clean
等“只是工作”。 (如果重要,我正在使用Fedora 13)
答案 6 :(得分:-1)
您可以仅为https://github.com/albfan/ant-netbeans
使用此回购它克服了netbeans包含ant配置的所有奇怪之处,所以你只需要:
编译:
$ ant.sh run
运行:
$ ant.sh <tab><tab>
无论如何(自动完成):
#ifdef COMPILING_LIBCTMCLIENT
#define LIBCTMCLIENT_FUNC LIBCTMCLIENT_C_LINKAGE __declspec(dllexport)
LIBCTMCLIENT_FUNC
struct CTMDownloadCMDataResult ctm_download_cm_data(const char *
szCmTransactionId, enum CTMCMOperationType cm_type);
enum CTMCMOperationType {
CTM_CM_NONE = 0,
CTM_CM_LOAN,
CTM_CM_PICKUP,
CTM_CM_BALANCE
};