Ant / Eclipse complains about artifact: dependencies

I need to use XML for JSON lib in my war. I followed a tutorial explaining that dependencies are required in a project.

But when I add the following to my ant build.xml (the file used to create the war), Eclipse complains about artifact:dependencies , it seems like it doesn't like : I have the following error message:

The artifact prefix for the artifact:dependencies element is not associated ...

 <artifact:dependencies filesetId="dependency.fileset" sourcesFilesetId="sources.dependency.fileset" javadocFilesetId="javadoc.dependency.fileset" versionsId="dependency.versions"> <!-- DEPENCIES GO HERE --> </artifact:dependencies> 

Any idea?

UPDATE

I have the same problem trying to determine the memory in memory using:

 <artifact:pom id="mypom" groupId="org.acme" artifactId="project1" version="1.0"> <dependency groupId="junit" artifactId="junit" version="4.1"/> <dependency groupId="org.codehaus.plexus" artifactId="plexus-utils" version="1.5.5"/> <license name="apache" url="http://www.apache.org"/> </artifact:pom> 

The artifact prefix for the artifact:pom element is not associated ...

UPDATE 2

I installed maven-ant jar in ant / lib and changed the build.xml file, so it contains the definition of the artifact material, but an error message appears during its launch.

 <project name="test" default="install" xmlns:artifact="antlib:org.apache.maven.artifact.ant"> <artifact:dependencies pathId="dependency.classpath"> <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.3</version> <type>jar</type> <classifier>jdk15</classifier> <scope>compile</scope> </dependency> ... 

Eclipse error message:

 BUILD FAILED D:\J2EE\workspace\Test\build.xml:3: Problem: failed to create task or type antlib:org.apache.maven.artifact.ant:dependencies Cause: The name is undefined. Action: Check the spelling. Action: Check that any custom tasks/types have been declared. Action: Check that any <presetdef>/<macrodef> declarations have taken place. No types or tasks have been defined in this namespace yet This appears to be an antlib declaration. Action: Check that the implementing library exists in one of: -D:\eclipse\plugins\org.apache.ant_1.8.2.v20110505-1300\lib -C:\Documents and Settings\luc\.ant\lib -a directory added on the command line with the -lib argument 

The maven-ant eggs exist in -D:\eclipse\plugins\org.apache.ant_1.8.2.v20110505-1300\lib

UPDATE 3

This is the build.xml file that I am using.

 <!-- <project name="Monitoring" default="install" xmlns:artifact="urn:maven-artifact-ant" xmlns:test="urn:test-tasks"> --> <project name="Monitoring" default="install" xmlns:artifact="antlib:org.apache.maven.artifact.ant"> <!-- project-specific variables --> <property environment="env" /> <property name="project_home" value="D:\J2EE\workspace\Monitoring"/> <property name="webapp.dir" value="${project_home}/target" /> <property name="jboss.dir" value="D:\J2EE\jboss\standalone\deployments" /> <property name="package.name" value="monitoring.war" /> <property name="lib.dir" value="${project_home}/lib" /> <property name="src.dir" value="${project_home}/src" /> <property name="resources.dir" value="${project_home}/resources" /> <property name="dest.dir" value="${project_home}/target" /> <property name="package.file" value="${dest.dir}/${package.name}" /> <!-- put everything in a temp folder with the right structure during the build --> <property name="temp.dir" value="${project_home}/temp" /> <property name="temp.dir.web-inf" value="${temp.dir}/WEB-INF" /> <property name="temp.dir.lib" value="${temp.dir.web-inf}/lib" /> <property name="temp.dir.classes" value="${temp.dir.web-inf}/classes" /> <property name="temp.dir.meta-inf" value="${temp.dir}/META-INF" /> <path id="build.class.path"> <fileset dir="${env.JAVA_HOME}/lib"> <include name="**/*.jar" /> </fileset> <fileset dir="D:\ant\lib"> <include name="**/*.jar" /> </fileset> </path> <target name="deps"> <artifact:dependencies pathId="dependency.classpath"> <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.3</version> <type>jar</type> <classifier>jdk15</classifier> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-io</artifactId> <version>1.3.2</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>xom</groupId> <artifactId>xom</artifactId> <version>1.1</version> </dependency> </artifact:dependencies> </target> <target name="clean" depends="deps"> <delete> <fileset dir="${dest.dir}" includes="**/*"/> </delete> <delete dir="${temp.dir}" /> <delete dir="${temp.dir.classes}" /> <delete dir="${temp.dir.meta-inf}" /> <delete dir="${temp.dir.web-inf}" /> </target> <target name="prepare" depends="clean"> <mkdir dir="${dest.dir}" /> <mkdir dir="${temp.dir}" /> <mkdir dir="${temp.dir.lib}" /> <mkdir dir="${temp.dir.meta-inf}" /> <mkdir dir="${temp.dir.web-inf}" /> <mkdir dir="${temp.dir.classes}" /> </target> <!-- COMPILE --> <target name="compile" depends="prepare"> <echo>=== COMPILE ===</echo> <echo>Compiling ${src.dir} files ...</echo> <javac debug="on" srcdir="${src.dir}" destdir="${temp.dir.classes}" includes="**/*" includeantruntime="false"> <classpath refid="build.class.path" /> <classpath refid="dependency.classpath" /> </javac> </target> <!-- PACKAGE --> <target name="package" depends="compile"> <echo>=== PACKAGE ===</echo> <!-- copy the config files --> <copy file="${resources.dir}/web.xml" tofile="${temp.dir.web-inf}/web.xml" overwrite="true" /> <copy file="${resources.dir}/manifest.mf" tofile="${temp.dir.meta-inf}/manifest.mf" overwrite="true" /> <copy todir="${temp.dir.classes}"> <fileset dir="${src.dir}"> <include name="**/*.xml"/> <include name="**/*.xsl"/> </fileset> </copy> <!-- the ant war task. with all resources in place, create the war file --> <war destfile="${package.file}" webxml="${temp.dir.web-inf}/web.xml" basedir="${temp.dir}"> <lib dir="${lib.dir}" /> <classes dir="${temp.dir.classes}" /> </war> </target> <!-- INSTALL --> <target name="install" depends="package"> <echo>=== INSTALL ===</echo> <copy file="${package.file}" tofile="${webapp.dir}/${package.name}" overwrite="true" /> <copy file="${package.file}" tofile="${jboss.dir}/${package.name}" overwrite="true" /> </target> </project> 

It worked well before I added all the dependency materials ... still can't find pb here. Any help would be greatly appreciated.

+8
eclipse dependencies ant
source share
2 answers

It looks like you are using Maven Ant Tasks . To do this, you will need a copy of the bank from the download area here . After (or if) you succeed, you will need to modify the assembly file to use it.

The main thing is that you need to define the artifact namespace and add a typedef for ant -lib:

 <project name="foo" default="foo" xmlns:artifact="antlib:org.apache.maven.artifact.ant"> <path id="maven-ant-tasks.classpath" path="lib/maven-ant-tasks-2.1.3.jar" /> <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="antlib:org.apache.maven.artifact.ant" classpathref="maven-ant-tasks.classpath" /> 
+12
source share

I had the same error message, but the reason was different.

Going to the window → Settings → Ant → Runtime and tuning Ant The main problem is solved.

Thus, for those above, the solution does not work, check if "Ant Home" is pointing in the right direction

0
source share

All Articles