<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"?>
<rdf:RDF xml:lang="en"
         xmlns="http://usefulinc.com/ns/doap#" 
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
         xmlns:asfext="http://projects.apache.org/ns/asfext#"
         xmlns:foaf="http://xmlns.com/foaf/0.1/">
<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
   
         http://www.apache.org/licenses/LICENSE-2.0
   
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
  <Project rdf:about="http://ant.apache.org/ivyde/">
    <created>2010-11-16</created>
    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" />
    <name>Apache IvyDE</name>
    <homepage rdf:resource="http://ant.apache.org/ivyde/" />
    <asfext:pmc rdf:resource="http://ant.apache.org" />
    <shortdesc>Integrate Ivy in Eclipse with the IvyDE plugin.</shortdesc>
    <description>IvyDE lets you manage your dependencies declared in an ivy.xml in your Java Eclipse projects. IvyDE will contribute to the classpath of your Java project, with the classpath container. It also bring an editor of ivy.xml files, with completion.</description>
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/IVYDE" />
    <mailing-list rdf:resource="http://ant.apache.org/ivy/ivyde/mailing-lists.html" />
    <download-page rdf:resource="http://ant.apache.org/ivy/ivyde/download.cgi" />
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/build-management" />
    <release>
      <Version>
        <name>Apache IvyDE 2.2.0.final</name>
        <created>2013-11-22</created>
        <revision>2.2.0.final</revision>
      </Version>
      <Version>
        <name>Apache IvyDE 2.2.0.beta1</name>
        <created>2012-04-05</created>
        <revision>2.2.0.beta1</revision>
      </Version>
      <Version>
        <name>Apache IvyDE 2.1.0</name>
        <created>2010-08-18</created>
        <revision>2.1.0</revision>
      </Version>
      <Version>
        <name>Apache IvyDE 2.0.0-final</name>
        <created>2009-07-09</created>
        <revision>2.0.0-final</revision>
      </Version>
      <Version>
        <name>Apache IvyDE 2.0.0-beta1</name>
        <created>2008-12-08</created>
        <revision>2.0.0-beta1</revision>
      </Version>
      <Version>
        <name>Apache IvyDE 2.0.0-alpha1</name>
        <created>2008-06-30</created>
        <revision>2.0.0-alpha1</revision>
      </Version>
    </release>
    <repository>
      <SVNRepository>
        <location rdf:resource="https://svn.apache.org/repos/asf/ant/ivy/ivyde/trunk/"/>
        <browse rdf:resource="http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/"/>
      </SVNRepository>
    </repository>
  </Project>
</rdf:RDF>
