回答
我不认为有一种方法可以保留现有的权限,每本说明从copy task:
的Unix注:当文件被复制文件权限不保留;他们最终会使用默认的UMASK权限。这是由于缺乏在当前Java运行时中查询或设置文件权限的手段而造成的。如果您需要保留权限复制功能,请改为使用
<exec executable="cp" ... >
。
但是,tar task可以采取一个或多个tarfileset
元素。可以使用filemode
和/或dirmode
属性来定义tarfileset
以指定unix权限。如果指定多个包含仅匹配那些文件以获取每组必需的权限,则该组中的文件将包含在这些权限中。
这种权限的缺乏使得ant tar任务几乎对我无用。有没有办法做到这一点不与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>
有将近人类已知的所有操作系统的GNU tar二进制文件。将其中一个放入您的版本控制系统并根据您的操作系统使用它。是的,Ant每次运行时都需要分离一个进程。
使用tarfileset为我们的项目工作。下面是万一有人需要它的工作示例:
<tar destfile="${dist}/${module.name}-${version}.tar">
<tarfileset dir="${package.dir}" filemode="550" includesfile="${home.dir}/includelist.txt">
<include name="*.sh"/>
</tarfileset>
</tar>
在这个例子中,includelist.txt用来告诉哪些文件在tar文件中包含。所有带* .sh扩展名的文件都具有用户和组的读取和执行权限(550)。
希望这可以帮助别人。
让我猜:ivy + git存储库?因为这就是我引起这个问题的原因。 – bassim 2014-10-12 12:36:00
这应该是答案!这是做到这一点的正确方法 – 2016-03-03 19:28:05
- 1. 即使任务在其他平台上使用,Ant的tar任务是否可以设置Linux文件权限?
- 2. 如何使用`send_file()`保留文件的权限?
- 3. 复制文件夹和保留权限
- 4. 在.NET中保留文件权限
- 5. 保留原始文件名在Groovy Ant任务
- 6. ant tar任务:启用“tar追加”的过程
- 7. 复制Sharepoint文件夹并保留权限
- 8. 如何在提取tar文件时检测文件权限?
- 9. 如何使用Node.JS访问不同用户的文件并在Linux中保留权限限制?
- 10. 如何在git中保留文件权限?
- 11. 如何在网站部署期间保留文件夹权限?
- 12. 保留SQLServer的权限
- 13. 如何使用Log4J保留现有的日志文件权限DailyRollingFileAppender
- 14. Git Pull保留组权限
- 15. Ant:在tar任务中有一个条件
- 16. 如何使用管理员权限运行任何exe文件?
- 17. 如何后处理使用Ant javac任务编译的文件?
- 18. 如何从jar文件创建tar文件,Netbeans,ant
- 19. 如何使用ant任务 - native2ascii
- 20. C#权限保存文件
- 21. 在任务并行库中保留OperationContext
- 22. 如何在WiX中应用文件夹权限,保留现有权限,但无递归?
- 23. 用ant任务编译Groovy文件
- 24. 如何使用Perl的Archive :: Tar保存tar档案文件中的setuid位?
- 25. Ant任务只保留JAR中的某些类,并进行依赖性检查?
- 26. Sql ant任务与sqlplus:预留字“rem”
- 27. 在Facebook应用程序中获取(并保留)扩展权限
- 28. 如何使用ant任务手动创建来自EPA文件的SCA文件?
- 29. 如何将文件从网络文件夹复制到本地驱动器并保留权限?
- 30. Ant Build-Script如何检查root权限
这是为什么downvoted?这个问题的完美解决方案 - upvoting – purecharger 2010-11-17 18:09:37
这很可能是因为回答者没有读到这个问题而被低估:“当然可以使用exec任务完成” – 2011-03-30 21:11:19
ant tar完全没用。我明白为什么(Java不能读取文件权限或一些垃圾),但这并不使它有用,因为我想tar来重写所有权限。这应该是正确的答案。 – Chris 2011-05-23 17:15:54