1

我在一个名为 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
$@

我将在 Linux 中使用这个环境变量,

# source release.com

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

4

2 回答 2

2

构建设置通常定义为Ant 构建中的属性。

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

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

我会谨慎使用此功能,因为它会使您的构建设置更加复杂且可移植性较差(与 Linux 相比,Windows 管理环境设置的方式不同)。

最后,如果您尝试将构建的依赖项集中在外部文件中,不幸的是 ANT(跨平台和 Java)将不支持 shell 脚本。相反,您可以使用 Java 属性文件并将其导入到您的构建中,如下所示:

<property file="build.properties"/>

Java 属性有一个简单易懂的格式:

src.dir=src
build.dir=build
于 2012-05-29T17:40:47.593 回答
0

为了补充 Mark 的答案,Ant XML 构建文件也可用于将您的依赖项集中在外部文件中。

依赖项.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>


构建.xml

<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>      
于 2012-05-30T06:46:54.257 回答