7

我想将我们公司的版权信息添加到我们所有现有的源代码文件中。

该项目是在Eclipse. 因此,对于新文件,我可以按照此处的建议修改设置。但是对于现有文件,我应该怎么做。如何修改数百个 java 文件以添加版权信息。(而且我无法打开上面链接中提到的 releng 插件。

任何基于 Windows 的文本操作脚本语言也会有所帮助。

4

6 回答 6

8

纠正康斯坦丁的解决方案:

find . -name \*.java -exec sh -c "mv '{}' tmp && cp copyright '{}' && cat tmp >> '{}' && rm tmp" \;

问题是 && 是由 shell 直接解释的,而不是传递给 find 的。逃避它们也不是解决方案,因为 find exec 不理解它们。因此,只需将整个命令交给某个 shell。

于 2011-01-10T20:29:38.083 回答
5

请尝试 eclipse Relen 插件。
这将有助于在所有 .java 文件和 .properties 中修复/添加版权声明。
只需右键单击该项目并选择“修复版权”。
链接

于 2012-10-08T18:50:27.357 回答
2

我会安装 CygWin (core + find) 并做一些类似的事情

find . -name *.java -exec mv '{}' tmp && cp copyright '{}' && cat tmp >> '{}' && rm tmp \;

于 2010-12-14T07:42:46.103 回答
2

我认为您可以使用正则表达式来使用 Eclipse 替换命令。

想象一下你的版权是这样的:

/* jQuery UI CSS Framework
*  Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
*  Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
*/

然后

1. Go to menu: Search -> File

2. in the Search dialog 
2.1. check the "Regular Expression"
2.2. in the Containing text:
    \A[^(\Q/*\E\s+jQuery.*)]
2.3 click the Replace
    past your copyright

正则表达式的解释:

\A - 文件的开头

\Q...\E - 这是正则表达式关键字(因为 / 和 * 是正则表达式中的键)

\s+ - 空格

[^(..)] - 表示除

于 2010-12-14T07:59:33.170 回答
2

您可以使用 Maven 许可证插件来执行此操作。

检查这个这个。插件支持您的许可证头模板,删除许可证并检查所有文件中的许可证。

于 2011-01-13T08:53:03.507 回答
-2

您可以使用记事本++。它可以通过“扩展模式”上的“在文件中查找”功能搜索和替换所有文件中的文本。使用\r\n(或文件的换行符序列)作为搜索输入。

于 2021-11-11T19:48:48.303 回答