java - 错误!ant 1.10.8 Java 8 和 XSLT 找不到类错误
问题描述
我在 Ant 1.6 和 Java 1.4 上运行旧代码,现在我正在升级到 Ant 1.10.8 和 Java 8。它使用 XSLT 来转换文件。但是当我使用升级版本运行部署应用程序时,部署失败,因为它无法加载类路径中存在的类。下面是蚂蚁目标
<target name="generate">
<property file="/etc/adminkey"/>
<xslt processor="trax" force="true" in="prop.xml" style="xslt/prop.xslt" out="logger.properties">
<param name="envname" expression="${env.ENV_NAME}"/>
<param name="packagename" expression="logger"/>
<param name="rootdir" expression="${env.ROOT_DIR}"/>
<classpath>
<pathelement location="/bin/util.jar"/>
</classpath>
</xslt>
</target>
和 prop.xslt 我正在使用来自 util.jar 的类
我怀疑不知何故类路径被忽略了。但不知道为什么。
下面是堆栈跟踪。
generate:
INFO - [echo] Generating logger.properties file...
INFO - [xslt] Processing prop.xml to logger.properties
INFO - [xslt] Loading stylesheet xslt/prop.xslt
INFO - [xslt] : Error! Cannot find class 'com.group.tools.util.Encrypter'.
INFO - [xslt] : Error! Cannot find external method 'com.group.tools.util.Encrypter.decryptwithkey' (must be public).
INFO - [xslt] : Fatal Error! Cannot find external method 'com.group.tools.util.Encrypter.decryptwithkey' (must be public).
INFO - [xslt] Failed to process prop.xml
ERROR -
ERROR - BUILD FAILED
ERROR - prop.xml:10: Fatal error during transformation using xslt/props.xslt: Cannot find external method 'com.group.tools.util.Encrypter.decryptwithkey' (must be public).
ERROR -
ERROR - Total time: 2 seconds
解决方案
我能够找出问题所在,这是因为 xslt 中 jar 的路径错误,它正在使用旧版本,因为 jar 在 ant lib 目录中可用。
推荐阅读
- django - Django 的 get_initial() 方法无法按预期工作
- python - 如何在 Python 中用 `\n` 替换通用换行符?
- oracle-sqldeveloper - 检查姓氏是否是名字的一部分
- python - 为什么 num_glyphs 与 FT_Get_First_Char / FT_Get_Next_Char 枚举的字形数量不匹配
- r - 创建使用环境变量作为默认值的 RStudio 连接
- javascript - Vue.js调用组件方法导致报错
- java - 最有可能的两个骰子的总和
- javascript - 在重新加载其工作时面临动画问题,但通常在滚动其不工作时
- html - 我需要在媒体查询中添加什么才能让我的网站占据移动设备上 100% 的视口?
- typescript - 在vue中递归地将槽传递给自引用节点