Domanda

Certo che può essere fatto utilizzando la exec task, ma la mia domanda è:

E 'possibile farlo utilizzando l'attività tar?

È stato utile?

Soluzione

Non credo che ci sia un modo per mantenere autorizzazioni esistenti, per questa nota dal attività di copia :

  

Unix Nota: i permessi dei file non vengono mantenute quando i file vengono copiati; finiscono con le autorizzazioni predefinite UMASK invece. Questo è causato dalla mancanza di qualsiasi mezzo per interrogare o permessi di file impostato nel runtime Java attuali. Se avete bisogno di una funzione di copia permesso-preservare, utilizzare al posto <exec executable="cp" ... >.

compito catrame può assumere una o più elementi tarfileset . Il tarfileset può essere definita con un attributo filemode e / o dirmode per specificare le autorizzazioni UNIX. Se si specificano più include corrispondenza solo i file per ottenere ogni set di autorizzazioni richieste, i file in quella serie saranno inclusi in tali autorizzazioni.

Altri suggerimenti

Questa mancanza di autorizzazione rende formica compito tar quasi inutile per me. Non c'è modo di farlo senza eseguire il tar del sistema operativo con il compito exec :

    <exec executable="tar" output="/dev/null" os="Linux">
        <arg value="--exclude-from=files_to_exclude.txt"/>
        <arg value="-cvz"/>
        <arg value="--file=${file.tar}"/>
        <arg value="."/>
    </exec>

Non ci sono binari GNU tar per quasi tutti i sistemi operativi che l'uomo conosca. Mettere uno di loro nel vostro sistema di controllo di versione e utilizzarlo a seconda del sistema operativo. Sì, Formica dovrà sborsare un processo ogni volta che viene eseguito.

Utilizzando tarfileset ha lavorato per il nostro progetto. Ecco un esempio di lavoro in caso qualcuno ne ha bisogno:

    <tar destfile="${dist}/${module.name}-${version}.tar">
        <tarfileset dir="${package.dir}" filemode="550" includesfile="${home.dir}/includelist.txt">
            <include name="*.sh"/>
        </tarfileset>
    </tar>

In questo esempio, includelist.txt viene utilizzato per indicare i file da includere nel file tar. Tutti i file con estensione * .sh avranno lettura ed esecuzione l'autorizzazione (550) per l'utente e il gruppo.

Spero che questo aiuta qualcuno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top