This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Build 200501311900 1) Have Java/Web freeform 2) Invoke compile action on a Java file or a package 3) IDE target is generated 4) Compile Java file 5) ERROR: File is not compiled. '${build.classes.dir}' is created - probably missing properties import in ide-file-targets.xml build script.
It's probably problem in ant module - it appears in both Java and Web project (reassigning back). Although it is mentioned in generated ant script comment that you need define property 'build.classes.dir', I think we could set it to default value like 'ide-build'/'vuild-classes' or something like that.
*** Issue 57010 has been marked as a duplicate of this issue. ***
1. If you have set up your freeform project correctly to begin with - having specified an output directory for your sources, which you would anyway need in order to debug correctly etc. - the target will use the correct output directory. 2. Otherwise, all the user has to do is fix the definition. There is never any guarantee that a generated target will work without any customization; the IDE is only making a guess as to what it should look like. We could pick some artificial default value like "ide-build" but 2a. If the user did already have an output dir that they simply failed to configure, which is most likely, Compile Single would compile to the wrong place, which is not terrible but not very nice either. 2b. If they did not already have an output dir, generating a target to compile to some new dir without generating a corresponding clean target entry would not be polite. And generating a clean target mechanically is pretty dangerous - you absolutely have to get it right, or else the wrong things will be <delete>d. So I am not sure that this is even worth fixing, or how it ought to be fixed if it is.
Ad 1) WebApp freeform debugging doesn't use Output JARs. It uses source roots. Ad 2a) I'm not sure if users want to have temporarily compiled classes in output directory - I think that something like 'build' directory is much better choice than 'dist'. From this point of view I would set ${build.classes.dir} to 'ide-build-classes' default value at least in case you have not output JARs set. It is IMO better than creating "${build.classes.dir}" directory by default and users can change it easily.
User needs to accommodate generated target to own setup.