用Ivy下载LWJGL原生代码

时间:2016-01-28 04:15:16

标签: ant lwjgl native ivy

我正在尝试为个人项目设置Ant + Ivy版本。一切都很有意义,工作得很好,直到我到达LWJGL。除了本地人之外,LWJGL的所有内容都得到了解决。

他们网站上的Readme.md似乎可以通过Ivy获取这些内容:

  

LWJGL 3可以与Maven / Gradle / Ivy一起使用,具体如下   依赖关系:

     
      
  • org.lwjgl:LWJGL:$ {版本}
  •   
  • org.lwjgl:LWJGL平台:$ {版本}:当地人窗口
  •   
  • org.lwjgl:LWJGL平台:$ {版本}:当地人Linux的
  •   
  • org.lwjgl:LWJGL平台:$ {版本}:当地人-OSX
  •   

我想要的文件肯定在maven central repository,因此必须有办法让他们通过常春藤。我已经设置了我的ivy.xml文件:

<ivy-module version="1.0" xmlns:extra="http://ant.apache.org/ivy/extra">
    <info organisation="foo" module="bar"/>
    <publications>
        <artifact name="baz" type="jar"/>
    </publications>
    <dependencies>
        <dependency org="org.lwjgl" name="lwjgl" rev="3.0.0a"/>
        <dependency org="org.lwjgl" name="lwjgl-platform" rev="3.0.0a" extra:classifier="natives-linux"/>
        <dependency org="org.lwjgl" name="lwjgl-platform" rev="3.0.0a" extra:classifier="natives-osx"/>
        <dependency org="org.lwjgl" name="lwjgl-platform" rev="3.0.0a" extra:classifier="natives-windows"/>
    </dependencies>
</ivy-module>

我在蚂蚁的决心任务:

<target name="resolve" description="Retrive dependencies with Ivy">
    <ivy:retrieve/>
</target>

出于某种原因,这会从&#34; org.lwjgl:lwjgl:3.0.0a&#34;中下载所有工件。 (jar,javadoc和sources),但不会从&#34; org.lwjgl:lwjgl-platform:3.0.0a&#34;下载任何本机。我花了很长时间在谷歌上,终于找到了&#34; extra:classifier&#34;在Github上的别人的ivy.xml文件中的语法,但无济于事(我太早抱起了我的希望)。必须有一些我不知道的东西,所以我希望SO上的人可以提供帮助。

1 个答案:

答案 0 :(得分:4)

必须在常春藤依赖声明中显式检索Maven模块中的额外工件。

您还需要指定检索任务中使用的模式,因为“分类器”是Maven特定标记并且是可选的。

实施例

├── build.xml
├── ivy.xml
└── target
    └── lib
        ├── lwjgl-3.0.0a.jar
        ├── lwjgl-platform-3.0.0a-natives-linux.jar
        ├── lwjgl-platform-3.0.0a-natives-osx.jar
        └── lwjgl-platform-3.0.0a-natives-windows.jar

的build.xml

<project name="demo" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">

    <property name="build.dir" location="target"/>

    <target name="resolve">
        <ivy:retrieve pattern="${build.dir}/lib/[artifact]-[revision](-[classifier]).[ext]"/>
    </target>

</project>

的ivy.xml

<ivy-module version="1.0" xmlns:extra="http://ant.apache.org/ivy/extra">
  <info organisation="foo" module="bar"/>
  <dependencies>
    <dependency org="org.lwjgl" name="lwjgl" rev="3.0.0a" conf="default"/>

    <dependency org="org.lwjgl" name="lwjgl-platform" rev="3.0.0a">
      <artifact name="lwjgl-platform" type="jar" extra:classifier="natives-linux"/>
      <artifact name="lwjgl-platform" type="jar" extra:classifier="natives-osx"/>
      <artifact name="lwjgl-platform" type="jar" extra:classifier="natives-windows"/>
    </dependency>
  </dependencies>
</ivy-module>