Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Location of xsd for ant ivy lib "antlib:org.apache.ivy.ant" for IDE autocomplete with xsd?

Tags:

ant

xsd

ivy

I want create Ivy Ant tasks in xml editor in IDE (Intellij iDEA) with autocomplete based on xsd , but I cannot find xsd for register XML namespace xmlns:ivy="antlib:org.apache.ivy.ant"

Where I can find it?

like image 697
qwazer Avatar asked Feb 04 '11 11:02

qwazer


3 Answers

I just copied the ivy jar to INTELLIJ_HOME/lib/ant and now intellij can resolve the ivy tasks.

Or import this ant file to your ant project, its actually the first ivy example in ivy documentation, make sure to always depend on install-ivy target, add your ant file to idea in the ant build window and you dont even have to install ivy and idea recognizes ivy tasks.

<property name="ivy.jar.dir" value="${user.home}/.ivy2/jars" />
<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />

<property name="ivy.install.version" value="2.2.0" />


<target name="check-ivy-installed" unless="INTERN-ivy.jar.exists">
    <available property="INTERN-ivy.jar.exists" file="${ivy.jar.file}"/>
</target>


<target name="download-ivy" depends="check-ivy-installed" unless="INTERN-ivy.jar.exists">
    <echo message="downloading and installing ivy"/>
    <mkdir dir="${ivy.jar.dir}"/>
    <!-- download Ivy from web site so that it can be used even without any special installation -->

    <get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
         dest="${ivy.jar.file}" usetimestamp="true"/>
    <echo message="ivy installed"/>
</target>

<!-- ================================= 
      target: install-ivy         
        this target is not necessary if you put ivy.jar in your ant lib directory
        if you already have ivy in your ant lib, you can simply remove this
        target and the dependency the 'go' target has on it
     ================================= -->
<target name="install-ivy" depends="download-ivy" description="--> install ivy">
    <!-- try to load ivy here from local ivy dir, in case the user has not already dropped
          it into ant's lib dir (note that the latter copy will always take precedence).
          We will not fail as long as local lib dir exists (it may be empty) and
          ivy is in at least one of ant's lib dir or the local lib dir. -->
    <echo message="Installing ivy"/>
    <path id="ivy.lib.path">
        <fileset dir="${ivy.jar.dir}" includes="*.jar"/>
    </path>
    <taskdef resource="org/apache/ivy/ant/antlib.xml"
              uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
</target>    

like image 115
Shalom Avatar answered Oct 03 '22 20:10

Shalom


To complete Shalom's answer, the location where to add the ivy.jar for the IntelliJ IDEA Community Edition is INTELLIJ_HOME/lib/ant/lib (one more folder to go).

Maybe it also apply to the full version.

like image 36
Arnaud P Avatar answered Oct 03 '22 20:10

Arnaud P


might be, there was no xsd in the past time this discussion started, but at least since may 2011 the ivy scheme is well documented at

http://ant.apache.org/ivy/schemas/ivy.xsd

which is linked right from the documentation in http://ant.apache.org/ivy/

so, to start over using the scheme, you just need:

<?xml version="1.0" encoding="UTF-8"?>
<project name="yourproject"
         xmlns:ivy="antlib:org.apache.ivy.ant"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"
>
<!-- … -->
like image 38
childno͡.de Avatar answered Oct 03 '22 19:10

childno͡.de