在使用AS时,配置版权文件应该是大部分开发者都会做的事,配置好后,在代码中 Alt+Insert 即可插入我们配置的声明。

在代码中插入个人版权声明有几个好处:

  1. 指明作者(ID、Email、Blog等)
  2. 指明时间(哪天被别人翻出来问问题,可以说离的太久忘了 >_>)
  3. 指明文件路径(包结构)
  4. 指明文件名
  5. 其它信息

新建

在 AS 中按顺序打开 File > Settings > Editor > Copyright > Copyright Profiles(其它IDEA理论上一致)。
点击图中的“+”,然后输入文件名,确定。
[AS] IDEA 版权配置 - 图1
此时就会生成一个模版信息:

Copyright (c) $today.year. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan. Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna. Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus. Vestibulum commodo. Ut rhoncus gravida arcu.

此时已经可以在代码中使用此版权配置了,但是这个是模版,大家都一样,没有个人信息标识能力。而且使用时会发现“$today.year”自动变成了当前年份信息,这个和写代码很相似,也是 AS 使用灵活的体现之一。

在配置自己的文件之前,先看下 AS 支持的“变量”

Name Type Comment
$today DateInfo 当前日期时间对象
$file.fileName String 当前文件的名称
$file.pathName String 当前文件的完整路径
$file.className String 当前文件的类名
$file.qualifiedClassName String 当前文件的权限定名
$file.lastModified DateInfo 上一次修改的日期时间对象
$project.name String 当前项目名
$module.name String 当前 Module 名
$username String 当前用户名(系统用户名)

其中,DateInfo 对象有如下属性和方法:

Name Type Comment
year int 当前年份
month int 当前月份
day int 当前日期(1-31)
hour int 当前小时(0-11)
hour24 int 当前小时(0-23)
minute int 当前分钟(0-59)
second int 当前秒数(0-59)
format(String format) String 时间日期格式化方法,参考:
java.text.SimpleDateFormat format

知道这些之后,就可以进行具体配置了,举个栗子:

  1. Copyright (c) $today.year.
  2. 作者:$username
  3. 邮箱:test@test.com
  4. 日期:$file.lastModified.format("yyyy-MM-dd HH:mm")
  5. ---
  6. 项目:$module.name
  7. 类名:$file.className
  8. 路径:$file.pathName
  9. Copyright (c) $today.year.

到这就算配置好了,不过界面下面还有几项:
[AS] IDEA 版权配置 - 图2

Validate

这个按钮是验证刚写的内容,但是,这货不能验证“变量”引用正确与否。因此要想知道自己刚配置的内容是否符合预期,最好的办法还是拉出来走两步,看看实际效果。

Regex to detect copyright in comments

这一项是用来做版权检测的,后面的值是正则表达式。这里“Copyright”的意思是,如果文件中有包含“Copyright”的版权声明,则更新一下声明内容;否则插入新的。

Allow replacing copyright if old copyright matches

这一项也是做版权检测,但是做更新用的。这一项是根据指定的内容去判断条件是否满足,如果满足就更新声明内容。
比如,这里配置 20[0-1][0-9],检测到原始内容是 Copyright (c) 2008,则会将其更新到当前配置。