命名蚂蚁目标的最佳做法是什么?
例如,您希望目标“test”能够运行什么?所有单元测试?所有功能测试?既?
用于运行不同类型的测试(单位/功能/全部)的标准名称是什么?是否有目标名称标准在J2SE中部署软件?在J2EE?
我的项目使用ant作为带有junit,Swing应用程序和J2EE应用程序的java项目。
答案 0 :(得分:13)
请参阅此页面上的"Naming Conventions" section:The Elements of Ant Style
以下目标对于许多构建是通用的。总是避免改变 众所周知的目标名称的行为。您不需要实施 所有这些都在一个项目中。
all Build and test everything; create a distribution, optionally install.
clean Delete all generated files and directories.
deploy Deploy the code, usually to a remote server.
dist Produce the distributables.
distclean Clean up the distribution files only.
docs Generate all documentation.
init Initialize the build: create directories, call <tstamp> and other common actions.
install Perform a local installation.
javadocs Generate the Javadoc pages.
printerdocs Generate printable documents.
test Run the unit tests.
uninstall Remove a local installation.
此页面还提供了其他良好指导。
答案 1 :(得分:6)
对于我的java项目,我使用maven default lifecycle中定义的名称作为基础。 对于其他项目,我也使用了GNU autoconf standard targets。
答案 2 :(得分:3)
有一个标准被广泛使用。无法从命令行调用以 - 字符开头的任何目标名称,因此必须是不打算直接执行的目标名称。有时,这被称为hidden target。
答案 3 :(得分:2)
只要它们在您的项目中是可以理解和一致的,您的名字取决于您。简单,简短的动词通常是常态,目标应该在逻辑上被打破。
您可以选择Matt B建议的路线,按类型命名您的测试目标:
或者您可以按工具命名,例如,如果您有Junit,Selenium和Webtest功能测试:
如果您对要向构建项目的任何人公开的目标使用description属性,则用户可以执行ant -p
列出可用目标并选择他们想要的目标。对于用户而言,有用的描述可能比实际命名的目标更重要,更有价值。
来自Ant Manual:
可选的description属性可以 用于提供单行 这个目标的描述,是 由-projecthelp打印 命令行选项。目标没有 这种描述被认为是内部的 除非另有说明,否则不会列出 使用-verbose或-debug选项。
答案 4 :(得分:2)
我们使用依赖于其他单个任务的简短目标名称获得了良好的体验。 AFAIK的一般标准集是
(但找不到链接)
对我们来说效果很好。
当我们必须区分测试类型时,我们将它们命名为“test.data”和“test.nondata”以分离测试类型,每个测试类型都被“测试”任务视为依赖。也许你应该像其他用户建议的那样使用“java方法命名约定”,但恕我直言并不重要。
如果您在本地计算机上手动运行ant脚本(我会测试是否已经破坏了构建脚本),如果您只需键入
,它就会派上用场ant dist
ant test report
而不是
ant compile create.distribution
ant test.data test.nondata report.junit.generate report .....
答案 5 :(得分:1)
我认为这完全是个人偏好的一点,但我会使用
test
- 用于单元测试test-integration
- 用于集成测试dbtest
- 用于数据库测试(如果它们包含在上面的项目中)test-all
运行以上所有此外,我对使用test
或复数形式tests
不可知,我可能在不同的项目中都做过。
答案 6 :(得分:1)
ant目标的命名约定应该与Java方法的命名约定非常相似:即,简单描述目标的作用。
以下摘自Sun standard for method naming:
命名方法
虽然是方法名称 可以是任何合法的标识符,代码 约定限制方法名称。通过 约定,方法名称应为a 小写的动词或多字的名字 以小写的动词开头, 其次是形容词,名词等 多字的名字,第一个字母 每个第二个和下一个词 应该大写。这里有一些 示例:
run runFast getBackground getFinalData compareTo setX isEmpty
最大的区别可能是蚂蚁目标的样式,它应该是所有较低的套装字母,单词用短划线分隔。
例如,以下目标似乎适合我:
run-all-tests
build
clean
test-and-release
deploy
run-code-coverage-metrics
最后,尝试使用命名方法时使用的相同的良好判断。如果您的目标清晰,具有描述性且易于理解,那么您的目标就很好。
有关该主题的更多详细信息,请查看Ant wiki上的The Elements of Ant Style。