Pregunta

Por supuesto que se puede hacer utilizando el exec task, pero mi pregunta es:

¿Es posible hacerlo mediante la tarea de alquitrán?

¿Fue útil?

Solución

No creo que hay una manera de retener los permisos existentes, por esta nota de la tarea copia :

  

Unix Nota: Los permisos de archivo no se conservan cuando se copian archivos; terminan con los permisos por defecto en lugar UMASK. Esto es causado por la falta de cualquier medio para consultar o establecer permisos de archivo en los tiempos de ejecución de Java actuales. Si necesita una función de copia de la autorización de preservación, uso <exec executable="cp" ... > lugar.

Sin embargo, el tarea de alquitrán puede tomar uno o más elementos tarfileset . El tarfileset se puede definir con un atributo filemode y / o dirmode para especificar los permisos UNIX. Si especifica múltiples incluye a juego sólo los archivos para obtener cada conjunto de permisos necesarios, los archivos de ese conjunto se incluirán con esos permisos.

Otros consejos

Esta falta de permiso hace que la tarea de alquitrán hormiga casi inútil para mí. No hay manera de hacerlo sin ejecutar el alquitrán sistema operativo con el tarea 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>

Hay binarios de GNU tar para casi todos los sistemas operativos conocidos por el hombre. Pon una de ellas en su sistema de control de versiones y utilizarlo en función de su sistema operativo. Sí, Hormiga tendrá que desembolsar un proceso cada vez que se ejecuta.

El uso de tarfileset trabajó para nuestro proyecto. Aquí está un ejemplo de trabajo en caso de que alguien lo necesita:

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

En este ejemplo, includelist.txt se utiliza contar a los archivos que desea incluir en el archivo tar. Todos los archivos con extensión * .sh tendrán permiso de lectura y ejecución (550) para el usuario y el grupo.

Espero que esto ayude a alguien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top