如何管理Eclipse项目源文件中的许可证横幅

如何管理Eclipse项目源文件中的许可证横幅,eclipse,plugins,banner,Eclipse,Plugins,Banner,我将要发布一组Eclipse插件作为开放源代码,并注意到在LGPL/EPL下发布的大多数源代码在每个引用许可证或包含许可证本身的文件中都包含一个标题 因为手动将这些横幅添加到每个文件似乎是一项艰巨且容易出错的任务。我怎样才能自动插入这些横幅 编辑:我最终找到了Eclipse插件,它们也允许更新现有的许可证横幅。关于最佳实践,我认为您应该将许可证文本放在一个单独的文件中,并在所有其他文件的开头添加一个构建工具(即ant)。因为您谈论的是一个开源项目,所以无论怎样,您都需要一个构建过程来生成java

我将要发布一组Eclipse插件作为开放源代码,并注意到在LGPL/EPL下发布的大多数源代码在每个引用许可证或包含许可证本身的文件中都包含一个标题

因为手动将这些横幅添加到每个文件似乎是一项艰巨且容易出错的任务。我怎样才能自动插入这些横幅


编辑:我最终找到了Eclipse插件,它们也允许更新现有的许可证横幅。

关于最佳实践,我认为您应该将许可证文本放在一个单独的文件中,并在所有其他文件的开头添加一个构建工具(即ant)。因为您谈论的是一个开源项目,所以无论怎样,您都需要一个构建过程来生成javadoc、发布版本等

顺便说一句,ant任务是简单的Java类,所以如果您找不到一个ant插件,那么自己编写一个任务应该很容易

来到eclipse,据我所知,它不能做这样的事情。我能想到的最快的方法是使用bash(如果您使用的是Linux)。假设文件msg包含要在每个文件开头添加的文本

  • 创建新目录以存储文件:

    mkdir~/outdir

  • 在每个文件的开头添加msg,并将结果放在outdir

    对于
    ls“*.java”
    中的i;执行cat msg$i>~/outdir/$i;完成

  • 类似地,您可以编写一个递归执行相同操作的命令,并执行一个额外步骤来创建目录结构:

    mkdir ~/outdir
    for i in `find -type d | sed 's/\.//' | grep -v "^$"`; do mkdir ~/outdir$i; done
    for i in `find -name "*.java"`; do cat msg $i > ~/outdir/$i ; done
    

    下面是一种比手动添加更像Eclipse的方法,它是通过Eclipse中的GUI完成的。请注意,这些是Linux/Windows菜单;Mac有点不同

  • 打开
    Windows->Preferences
  • 导航到
    Java->code-Style->code-Templates
  • 编辑
    注释->文件
    注释模板以包含样板文件。
    存在当前年份、文件名等的变量

  • 另外,请注意,这是一种仅适用于新文件的解决方案;它不会帮助你处理旧文件;为此,我将对您现有的代码使用类似idrosid的解决方案

    ,感谢您概述了解决问题的方案。不幸的是,将其放入构建步骤不会影响SVN中的代码。@fhe但您仍然可以将其作为源代码的一次性转换运行,然后将其全部检入。(我想您知道:-),但要清楚这仍然是一个潜在的解决方案。谢谢,但正如您所说,这只会影响新文件。此外,使用Eclipse的代码模板无法更改现有的横幅。你在某种程度上促使我研究Eclipse在这个主题上的功能,但这有点稀疏。实际上,看起来像是适合插件的东西。也许当我有时间的时候……我实际上已经编辑了我的问题,并包含了一个指向一个看起来非常有前途的插件的链接。你可能应该更改问题标题,因为它会误导你:这个问题适用于使用Eclipse管理的任何代码(不仅仅是Eclipse插件项目)。然后我将+1这个问题,因为它是一个好问题!(我认为直接将其作为编辑“强制”有点冒昧。)或者我遗漏了什么吗?…并用eclipse和licensingI标记了它。我能够使用eclipse的版权工具:知道这在JDeveloper中是否可行吗?