繁体   English   中英

将外部依赖项添加到ant项目(IDEA Android项目)

[英]Adding external dependencies to ant project (IDEA Android project)

nkzawa撰写的关于socket.io-java的文档中,提到了在下一个片段中添加ant依赖关系:

<dependency org="com.github.nkzawa" name="socket.io-client" rev="0.1.1-SNAPSHOT"> <artifact name="socket.io-client" type="jar" /> </dependency>

我应该在哪个文件中包含它? 之后,我应该如何编译我的应用程序?

为了使用ant管理依赖关系,您需要使用Ivy,但是我同意Bart Kiers的观点-切换到Gradle ,尤其是在您已经在使用IDEA的情况下。

socket.io-client文档具有误导性。 ANT的扩展名为ivy,用于执行依赖关系管理,但默认情况下未捆绑。

设置完成后,您可以使用cachepath任务在ivy.xml文件中或build.xml中列出项目的依赖项:

<ivy:cachepath pathid="compile.path">
   <dependency org="com.github.nkzawa" name="socket.io-client" rev="0.1.1" />
</ivy:cachepath>

我在下面提供了一个更完整的示例。 它详细说明了如何配置您的ANT构建以自动设置常春藤。

我不是一名Android程序员,因此无法推荐最佳的构建工具。 我可以说的是,将依赖性管理添加到构建过程中是一个很好的主意。 ANT比Maven和Gradle等更先进的工具早已具备此功能。

build.xml文件

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

    <!--
    ================
    Build properties
    ================
    -->
    <available classname="org.apache.ivy.Main" property="ivy.installed"/> 

    <!--
    ===========
    Build setup
    ===========
    -->
    <target name="install-ivy" description="Install ivy" unless="ivy.installed">
        <mkdir dir="${user.home}/.ant/lib"/>
        <get dest="${user.home}/.ant/lib/ivy.jar" src="http://search.maven.org/remotecontent?filepath=org/apache/ivy/ivy/2.3.0/ivy-2.3.0.jar"/>
        <fail message="Ivy has been installed. Run the build again"/>
    </target>

    <target name="resolve" depends="install-ivy" description="Use ivy to resolve classpaths">
        <ivy:cachepath pathid="compile.path">
           <dependency org="com.github.nkzawa" name="socket.io-client" rev="0.1.1" />
        </ivy:cachepath>
    </target>

    <!--
    ===============
    Compile targets
    ===============
    -->
    <target name="build" depends="resolve" description="Project build logic goes here">
       <javac .... classpathref="compile.path">
       </javac>

       ...
    </target>

    <!--
    ===============
    Clean-up targets
    ===============
    -->
    <target name="clean" description="Cleanup build files">
        <delete dir="build"/>
    </target>

    <target name="clean-all" depends="clean" description="Additionally purge ivy cache">
        <ivy:cleancache/>
    </target>

</project>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM