Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant:如何使用Ant设置环境变量_Ant - Fatal编程技术网

Ant:如何使用Ant设置环境变量

Ant:如何使用Ant设置环境变量,ant,Ant,我在一个名为release.com的文件中有环境变量,如下所示 echo "<<< OpenSplice HDE Release V5.5.1OSS For x86.linux2.6, Date 2012-05-23 >>>" if [ "$SPLICE_ORB" = "" ] then SPLICE_ORB=DDS_OpenFusion_1_6_1 export SPLICE_ORB fi if [ "$SPLICE_JDK" = "" ]

我在一个名为release.com的文件中有环境变量,如下所示

echo "<<< OpenSplice HDE Release V5.5.1OSS For x86.linux2.6, Date 2012-05-23 >>>"
if [ "$SPLICE_ORB" = "" ]
then
    SPLICE_ORB=DDS_OpenFusion_1_6_1
    export SPLICE_ORB
fi
if [ "$SPLICE_JDK" = "" ]
then
    SPLICE_JDK=jdk
    export SPLICE_JDK
fi
OSPL_HOME="/usr/local/covidien/HDE/x86.linux2.6"
OSPL_TARGET=x86.linux2.6
PATH=$OSPL_HOME/bin:$PATH
LD_LIBRARY_PATH=$OSPL_HOME/lib:$LD_LIBRARY_PATH
CPATH=$OSPL_HOME/include:$OSPL_HOME/include/sys:$CPATH
OSPL_TMPL_PATH=$OSPL_HOME/etc/idlpp
OSPL_URI=file://$OSPL_HOME/etc/config/ospl.xml
. $OSPL_HOME/etc/java/defs.$SPLICE_JDK
CLASSPATH=$OSPL_HOME/jar/dcpssaj.jar:$CLASSPATH
CLASSPATH=$OSPL_HOME/jar/dcpscj.jar:$CLASSPATH
export CLASSPATH OSPL_HOME OSPL_TARGET PATH LD_LIBRARY_PATH CPATH OSPL_TMPL_PATH OSPL_URI
$@

使用Ant脚本如何将
release.com
设置为源代码?

构建设置通常在Ant构建中定义

如有必要,可以按如下方式访问环境设置:

  <property environment="env"/>
  <echo message="Number of Processors = ${env.NUMBER_OF_PROCESSORS}"/>
  <echo message="ANT_HOME is set to = ${env.ANT_HOME}"/>
<property file="build.properties"/>

为了补充Mark的答案,还可以使用Ant XML构建文件来集中外部文件中的依赖关系

dependencies.xml

<project name="deps" basedir=".">  
  <dirname property="deps.basedir" file="${ant.file.deps}"/>

  <property name="my.jar" location="${deps.basedir}/my-tasks.jar" />

  <taskdef name="my-ant-task" classpath="${my.jar}"
      classname="org.my.domain.ant.MyAmazingTask" />
</project>
<project name="my-project" basedir=".">
  <import file="dependencies.xml" />

  <target name="give-my-task-a-spin">
    <my-ant-task />
  </target>
</project>


build.xml

<project name="deps" basedir=".">  
  <dirname property="deps.basedir" file="${ant.file.deps}"/>

  <property name="my.jar" location="${deps.basedir}/my-tasks.jar" />

  <taskdef name="my-ant-task" classpath="${my.jar}"
      classname="org.my.domain.ant.MyAmazingTask" />
</project>
<project name="my-project" basedir=".">
  <import file="dependencies.xml" />

  <target name="give-my-task-a-spin">
    <my-ant-task />
  </target>
</project>



如果有大量自定义任务,最好将它们放在antlib中,这样可以通过为库中的所有任务共享相同的类加载器来减少内存使用

<antlib>
  <taskdef name="my-task01"
      classname="org.my.domain.ant.MyCustomTask01" />

  <taskdef name="my-task02"
      classname="org.my.domain.ant.MyCustomTask02" />

  <taskdef name="my-task03"
      classname="org.my.domain.ant.MyCustomTask03" />

  ...

</antlib>      

...

我认为您需要提供更多的背景:1)您想要实现什么?2) 您尝试过什么?对于管理ANT依赖项,我推荐ApacheIvy:ApacheIvy绝对适合管理ANT依赖项。但是,对于简单的外部Ant配置文件,使用项目文件而不是Java属性文件不仅具有允许简单的键值对(以属性的形式)的优势,而且还可以创建宏定义、类型定义等的小型库。虽然我完全理解多个构建文件的参数,但我并不喜欢。。它在一开始运行良好,但随着时间的推移,您的项目彼此之间的耦合越来越紧密(通过共享构建逻辑)。。。我的激进观点是,如果构建逻辑是真正可重用的,那么它应该打包为antlib,并作为ivy管理的jar分发。这引入了对通用逻辑进行版本化的能力,使项目能够在不破坏旧版本的情况下进行创新。我同意。当我第一次开始使用Ant时,我试图通过绑定在构建文件中的宏定义重用构建逻辑。我很快得出结论,共享构建逻辑最好通过编写antlibs中打包的定制Ant任务并作为JAR分发来处理。然而,直到现在,我还没有通过常春藤分发罐子。我想我会听从你的建议,开始使用常春藤。谢谢你,马克!