2012-05-29 42 views
0

我有一個名爲release.com如下文件的環境變量,螞蟻:如何設置環境變量使用Ant

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 
[email protected] 

,我將在Linux中使用這個環境變量,

# source release.com 

使用螞蟻腳本如何設置release.com作爲源?

+0

我認爲你需要提供更多的上下文:1)你想達到什麼目的? 2)你有什麼嘗試? – oers

回答

2

構建設置通常在您的Ant構建中定義爲properties

如果有必要,它可以訪問環境設置如下:

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

,因爲它使您的構建更復雜的設置和便攜性較差我會謹慎使用這個功能(窗口管理不同相比,Linux環境的設置)。

最後,如果您試圖將構建的依賴集中在外部文件中,不幸的是,ANT(即跨平臺和Java)將不支持shell腳本。相反,你可以使用Java屬性文件,並將其導入到你的編譯如下:

<property file="build.properties"/> 

Java屬性有一個簡單的瞭解格式:

src.dir=src 
build.dir=build 
0

爲了增加馬克的回答時,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> 


的build.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>  
+0

對於管理ANT依賴關係,我建議使用Apache ivy:http://ant.apache.org/ivy/ –

+0

Apache Ivy絕對適合管理Ant依賴關係。但是,對於簡單的外部Ant配置文件,使用項目文件而不是Java屬性文件具有的優點不僅在於允許簡單的鍵值對(以屬性的形式),還可以創建小型庫宏定義,typedefs等 –

+1

雖然我完全理解多個構建文件的論點,但我不是粉絲。它在開始時工作正常,但隨着時間的推移,您的項目彼此之間變得越來越緊密(通過共享構建邏輯) ...我的激進觀點是,如果構建邏輯真的可以重用,那麼它應該被打包成一個antlib並作爲常青藤管理的jar分發。這引入了對通用邏輯進行版本管理的能力,使項目能夠在不破壞舊版本的情況下進行創新。 –