Avatar billede alister_crowley Nybegynder
31. marts 2005 - 08:18 Der er 10 kommentarer og
1 løsning

Ant , hvad er det ?

Hey

Jeg har gang i et projekt, med at kode en mp3 afspiller i java,
til lyden vil jeg bruge FMOD (www.fmod.org) eller rettere en udgave konverteret med JavaHPP.

Det eneste eksempel der er med er sådan en xml-fil her:

Kode:
===========================================

<?xml version="1.0" encoding="UTF-8"?>
        <!--
    Ant Project to deploy FMOD Samples as Java Webstart (aka JNLP) Apps
        -->
<project basedir="." default="all" name="FMOD Java JNLP Deployment">
        <!--
    *******************************************************************
    important project properties
    *******************************************************************
        -->
    <property name="destdir" location="./out"/>

    <property name="fmodjava.version" value="1.0"/>

    <!-- location of FMOD Java compiled classes -->
    <property name="fmodjava.jar" location="../libs/fmodjava.jar"/>
    <!-- location of Windows FMOD Java runtime DLL -->
    <property name="fmodjava.win.dll" location="../libs/fmodjava.dll"/>
    <!-- where the actual FMOD DLL is located for Windows runtime -->
    <property name="fmod.win.dll" location="../libs/fmod.dll"/>
    <!-- location of Mac OS X FMOD Java runtime DLL -->
    <property name="fmodjava.mac.dll" location="../libs/libfmodjava.jnilib"/>

    <!-- if true, the <signjar> task will be verbose -->
    <property name="sign.verbose" value="true"/>

    <!-- keystore alias for key used to sign jars -->
    <property name="sign.alias" value="pointy fmod key"/>
    <!-- keystore password for key used to sign jars -->
    <property name="sign.keypass" value="123fmod"/>
    <!-- password for keystore itself -->
    <property name="sign.storepass"    value="coalface!123keystore"/>

    <property name="fmodjava.codebase" value="http://coalface2.private.net/opensource/fmodjava"/>
    <property name="fmodjava.href" value="http://coalface2.private.net/opensource/fmodjava"/>
    <!--
        *******************************************************************
            project targets
    *******************************************************************
        -->
    <target name="all" depends="jarlibs,signlibs,copysrc"/>

    <target name="do_timestamp"><tstamp/><echoproperties prefix="ant"/></target>
    <!--
        *******************************************************************
        (1) jar together the FMOD classes and the Javahpp runtime stuff.
    *******************************************************************
        -->
    <target name="jarlibs" depends="do_timestamp">

        <jar destfile="${destdir}/fmodjava.unsigned.jar" compress="true" update="false" index="true">
           
            <!-- the FMOD Java runtime stuff -->
            <zipfileset src="${fmodjava.jar}" includes="**/*.*"/>
           
            <!-- make the manifest automagically, sealing all but example packages -->
            <manifest>
                <attribute name="Built-By" value="${user.name}"/>
                <attribute name="Implementation-Version" value="${fmodjava.version} ${TODAY}"/>
               
                <attribute name="Sealed" value="true"/>
               
                <section name="org/fmod/examples">
                    <attribute name="Sealed" value="false"/>
                </section>
            </manifest>
        </jar>
        <!--
                *******************************************************************
            (2)    jar the native libraries for the various platforms
        *******************************************************************
                -->
        <echo message="fmod    dll is at : ${fmod.win.dll}"/>
        <echo message="fmodjava dll is at : ${fmodjava.win.dll}"/>
        <echo message="fmodjava jnilib is at : ${fmodjava.mac.dll}"/>
       
        <jar destfile="${destdir}/fmodjavalibs-win.unsigned.jar" compress="true" update="false">
            <fileset file="${fmod.win.dll}"/>
            <fileset file="${fmodjava.win.dll}"/>
        </jar>

        <jar destfile="${destdir}/fmodjavalibs-mac.unsigned.jar" compress="true" update="false">
            <fileset file="${fmodjava.mac.dll}"/>
        </jar>
    </target>
    <!--
        *******************************************************************
        (3) use SignJar - to sign the deployment jar files.
    *******************************************************************
        -->
    <target name="signlibs" depends="jarlibs">

        <signjar jar="${destdir}/fmodjava.unsigned.jar" signedjar="${destdir}/fmodjava.jar" alias="${sign.alias}" keypass="${sign.keypass}" storepass="${sign.storepass}" verbose="${sign.verbose}"/>
        <signjar jar="${destdir}/fmodjavalibs-win.unsigned.jar" signedjar="${destdir}/fmodjavalibs-win.jar" alias="${sign.alias}" keypass="${sign.keypass}" storepass="${sign.storepass}" verbose="${sign.verbose}"/>
        <signjar jar="${destdir}/fmodjavalibs-mac.unsigned.jar" signedjar="${destdir}/fmodjavalibs-mac.jar" alias="${sign.alias}" keypass="${sign.keypass}" storepass="${sign.storepass}" verbose="${sign.verbose}"/>

        <delete file="${destdir}/fmodjava.unsigned.jar" failonerror="false"/>
        <delete file="${destdir}/fmodjavalibs-win.unsigned.jar" failonerror="false"/>
        <delete file="${destdir}/fmodjavalibs-mac.unsigned.jar" failonerror="false"/>
    </target>

    <target name="copysrc">
        <copy todir="${destdir}">
            <fileset dir="./src"/>
        </copy>
        <!-- fix codebase and href properties in JNLP files -->
        <replaceregexp match="JNLPCODEBASE" replace="${fmodjava.codebase}">
            <fileset dir="${destdir}" includes="*.jnlp" />
          </replaceregexp>
        <replaceregexp match="JNLPHREF" replace="${fmodjava.href}">
            <fileset dir="${destdir}" includes="*.jnlp" />
          </replaceregexp>
    </target>
</project>

===========================================

Det jeg undre mig over er:

"Ant Project to deploy FMOD Samples as Java Webstart (aka JNLP) Apps"

Hvad er Ant for noget , og hvad bruges det til ?
Har kigget lidt på suns sider, men kan ikke så godt forstå ideen i det.
Avatar billede arne_v Ekspert
31. marts 2005 - 08:25 #1
ant er et værktøj til at builde med

læs f.eks. min artikel om ant !
Avatar billede arne_v Ekspert
31. marts 2005 - 08:25 #2
Avatar billede arne_v Ekspert
31. marts 2005 - 08:30 #3
så hent og installer ant

og lav et link på dit skrivebord til ant dokumentationen så du hurtigt kan slå
ant tasks op

det er ikke så svært når man kommer igang med det
Avatar billede alister_crowley Nybegynder
31. marts 2005 - 09:13 #4
okay, sådan det fungerede :)

Jeg testede så:

C:\JavaProjekter\mp3\FMOD Java SDK\jnlp_deploy>ant
Buildfile: build.xml

do_timestamp:
[echoproperties] #Ant properties
[echoproperties] #Thu Mar 31 09:12:08 CEST 2005
[echoproperties] ant.file=C\:\\JavaProjekter\\mp3\\FMOD Java SDK\\jnlp_deploy\\build.xml
[echoproperties] ant.project.name=FMOD Java JNLP Deployment
[echoproperties] ant.file.FMOD\ Java\ JNLP\ Deployment=C\:\\JavaProjekter\\mp3\\FMOD Java SDK\\jnlp_deploy\\build.xml
[echoproperties] ant.java.version=1.5
[echoproperties] ant.home=C\:\\java\\ant
[echoproperties] ant.library.dir=C\:\\java\\ant\\lib
[echoproperties] ant.version=Apache Ant version 1.6.2 compiled on July 16 2004

jarlibs:
    [echo] fmod    dll is at : C:\JavaProjekter\mp3\FMOD Java SDK\libs\fmod.dll
    [echo] fmodjava dll is at : C:\JavaProjekter\mp3\FMOD Java SDK\libs\fmodjava.dll
    [echo] fmodjava jnilib is at : C:\JavaProjekter\mp3\FMOD Java SDK\libs\libfmodjava.jnilib

signlibs:
  [signjar] Signing JAR: C:\JavaProjekter\mp3\FMOD Java SDK\jnlp_deploy\out\fmodjava.unsigned.jar
  [signjar] jarsigner error: java.lang.RuntimeException: keystore load: C:\Documents and Settings\ClaJo19\.keystore (Den
angivne fil blev ikke fundet)

BUILD FAILED
C:\JavaProjekter\mp3\FMOD Java SDK\jnlp_deploy\build.xml:93: exec returned: 1

Total time: 1 second

Hvad mener den med .keystore ?
Avatar billede arne_v Ekspert
31. marts 2005 - 09:16 #5
Du vil jo signe en jar fil.

Det kræver et certifikat.

Og den leder efter det i C:\Documents and Settings\ClaJo19\.keystore
Avatar billede alister_crowley Nybegynder
31. marts 2005 - 09:18 #6
ah, okay :)

Så må jeg ud og lede efter et cerfificat
Avatar billede arne_v Ekspert
31. marts 2005 - 09:27 #7
Java kommer med tools til at lave sit eget certifikat med.
Avatar billede arne_v Ekspert
31. marts 2005 - 09:28 #8
Jeg har brugt den her til at create med:

keytool -genkey -keystore %1.jks -alias %1
keytool -export -keystore %1.jks -alias %1 -file %1.cer

(første argument = navn=

og den her til at signe med:

jarsigner -keystore %2.jks %1.jar %2

(første argument = jar navn, andet argument = navn)
Avatar billede arne_v Ekspert
31. marts 2005 - 09:29 #9
Men der er forskel på Java 1 og Java 2 etc.etc. så du kan godt komme til at hygge dig
lidt med det
Avatar billede alister_crowley Nybegynder
31. marts 2005 - 13:24 #10
Dejligt, så lærer jeg da også en del i dag :)

Husk at lægge et svar
Avatar billede arne_v Ekspert
31. marts 2005 - 13:50 #11
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester