Reputation: 8042
I have inherited a project originally written in NetBeans using Ant to build. I am an Eclipse user and have used Ant but do not completely understand the NetBeans specific way of using Ant. I know it uses a build-impl.xml
file (imported into the build.xml
), but am at a loss as to how that file is generated/updated
by the IDE.
I made some minor changes to a couple of classes and want to build a jar. I tried running the "clean"
and "jar"
targets in Eclipse from both the build.xml
and build-impl.xml
but get the following errors:
BUILD FAILED
C:\Devel\Projects\MyProject\nbproject\build-impl.xml:661: The following error occurred while executing this line:
C:\Devel\Projects\MyProject\nbproject\build-impl.xml:337: Compile failed; see the compiler error output for details.
Line 661 is the j2seproject3 element in this target:
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile">
<j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.classes.dir}">
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
Line 337 is the javac line from this target:
<target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
<macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${src.dir}" name="srcdir"/>
<attribute default="${build.classes.dir}" name="destdir"/>
<attribute default="${javac.classpath}" name="classpath"/>
<attribute default="${javac.processorpath}" name="processorpath"/>
<attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="${javac.debug}" name="debug"/>
<attribute default="${empty.dir}" name="sourcepath"/>
<attribute default="${empty.dir}" name="gensrcdir"/>
<element name="customize" optional="true"/>
<sequential>
<property location="${build.dir}/empty" name="empty.dir"/>
<mkdir dir="${empty.dir}"/>
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" executable="${platform.javac}" fork="yes" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
<src>
<dirset dir="@{gensrcdir}" erroronmissingdir="false">
<include name="*"/>
</dirset>
</src>
<classpath>
<path path="@{classpath}"/>
</classpath>
<compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
<compilerarg line="${javac.compilerargs}"/>
<customize/>
</javac>
</sequential>
</macrodef>
</target>
I have no idea what these two targets are about and why they're failing. I downloaded NetBeans7 hoping that building it there would succeed, but get the same errors.
Can I safely remove these targets from my build? Do I need to update the project.properties file?
Any help getting this to build is appreciated.
Upvotes: 4
Views: 13272
Reputation: 1
corrected:
sorry about the past answer. solving some on the Gradle build on the line found that is advisable to create a new Relative layout. To sign it need to insert it into MainActivity.xml by replacing the old layout like
com.android.support: appcompat v7:28.0.0-alpha1';
setContentView (R.layout.new_layout);
Upvotes: 0
Reputation: 1
I had the same issue about assigning different versions of the Java library on my computer, because I have different kinds of software on 3d modelling and visual design.
By affirming Java and administrator settings on Windows Control Panel, and resetting my computer, everything was ok.
Upvotes: -1
Reputation: 107090
Any other errors? What message appeared after that? Was it a bunch of Java compile errors, or did the <javac>
task itself didn't execute?
The <macrodef>
is defining a new macro named <javac>
that will execute instead of the original <javac>
. "Wait a second!", you're saying, isn't there already a <javac>
task?
Yes there is, and this looks like it's redefining it. I would normally consider this a bad thing to do -- especially since it doesn't take the same arguments of <javac>
. Why not call it <netbeansc>
or something?
The @
signs are sort of like properties. They're parameters that you're passing to the macro.
You have the following:
<j2seproject3:javac
gensrcdir="${build.generated.sources.dir}"/>
This calls the Macro that pretty much runs the ORIGINAL <javac>
task to do the compile. I would make sure that all of the properties show below are defined.
<javac
debug="${javac.debug}"
deprecation="${javac.deprecation}"
destdir="${build.classes.dir}"
encoding="${source.encoding}"
excludes="${excludes}"
executable="${platform.javac}"
fork="yes"
includeantruntime="false"
includes="${includes}"
source="${javac.source}"
sourcepath="${empty.dir}"
srcdir="${srcdir}"
target="${javac.target}"
tempdir="${java.io.tmpdir}">
<src>
<dirset dir="${empty.dir}"
erroronmissingdir="false">
<include name="*"/>
</dirset>
</src>
<classpath>
<path path="${javac.classpath"/>
</classpath>
<compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
<compilerarg line="${javac.compilerargs}"/>
<customize/>
Upvotes: 2