我希望能够做一些事情,比如将目录和文件名与 Hudson/Jenkins 的果冻脚本中的完整路径分开。
例如,如果我/dir1/dir2/dir3/file.ext
想(在果冻脚本中)访问/dir1/dir2/dir3
和file.ext
.
jelly 脚本可以使用 getPath() 和 getName() 等 java io 函数吗?
Dion Gillard 的Jelly: Executable XML deck 对解决这个问题很有帮助。从幻灯片中我了解了调用(和invokeStatic)标签,这正是我所需要的。Apache FilenameUtils 类有一些非常好的静态方法来处理文件名,它包含在 Hudson 中。
<j:jelly xmlns:j="jelly:core">
<j:set var="fullpath" value="/dir1/dir2/dir3/file.ext"/>
<!-- get the path without the filename -->
<j:invokeStatic var="justpath" method="getPath" className="org.apache.commons.io.FilenameUtils">
<j:arg value="${fullpath}"/>
</j:invokeStatic>
<!-- get just the filename -->
<j:invokeStatic var="justname" method="getName" className="org.apache.commons.io.FilenameUtils">
<j:arg value="${fullpath}"/>
</j:invokeStatic>
</j:jelly>
在上面的示例中,justpath将设置为/dir1/dir2/dir3/
,justname将设置为file.ext
。