使用ant 1.5 我正在尝试使用在产品目录下编译的文件创建一个jar文件,该文件可以不断更改构建名称
/target
|---myapp-1.3.5-SNAPSHOT
|--- WEB-INF
|---classes
|---i18n
这有点挑剔但我必须制作一个仍然保留web
结构的jar文件
|---myapp-utility.jar
|--- WEB-INF
|---classes
|---i18n
这意味着我必须使用通配符来识别带有构建和快照的目录
<jar destfile="myapp-utility.jar">
<manifest>
....
</manifest>
<fileset dir="myapp-**/"/>
</jar>
并且它不起作用,外卡无法识别。那么替代方案是什么?
答案 0 :(得分:1)
Ant 1.5是Ant的一个非常老的版本。如果您至少可以使用Ant 1.8.2(2010年发布),则可以使用以下内容...
<jar destfile="myapp-utility.jar">
<mappedresources>
<fileset dir="target">
<include name="myapp-*/**"/>
</fileset>
<cutdirsmapper dirs="1"/>
</mappedresources>
</jar>
<mappedresources>
resource collection包裹<fileset>
元素,然后将mapper应用于结果。
dir
<fileset>
无法处理通配符,这是真的。幸运的是,<include>
可以处理通配符。因此,上面将通配符测试放入<include>
。 **
确保myapp-*
下的所有文件都匹配。
最后,<cutdirsmapper>
会从每个文件中删除myapp-1.3.5-SNAPSHOT/
部分。
答案 1 :(得分:1)
您可以使用pathconvert来分析通配符规范:
SELECT EmployeeID, MIN(EmpName), AccountID, MIN(Department) AS Department, MIN(Position) AS Position
FROM Employees
WHERE EmpName = 'Mary Johnson'
GROUP BY EmployeeID, AccountID