我认为Jenkins编译和构建java项目。但我得到了以下错误
[javac] C:\Users\Administrator\.jenkins\workspace\AMRM\AMRM-rad-workspace\AMRM\src\com\bidv\amrm\struts2\jdbc\DeclareAppImpl.java:232: error: incompatible types
[javac] return DB.getConnection().queryForObject(sql, new Object[]{id}, new DTOMapper());
[javac] ^
[javac] required: ListAppDTO
[javac] found: Object
我发现修复解决方案是在java代码中关联函数之前添加以下行:@SuppressWarnings(“unchecked”)
但是,还有其他解决方案吗?比如詹金斯的配置?我不想更改我的代码,因为我的项目仍在Eclipse中编译成功(但在Jenkins中错误)
答案 0 :(得分:0)
我找到了原因,这是因为我的jenkins仍然使用不同的java版本。
所以我将正确的版本(1.6)传递给构建语句javac,然后成功(java.home = C:\ Program Files \ Java \ jdk1.6.0_23)
<javac fork="yes" executable="${java.home}\bin\javac" includeantruntime="false" encoding="utf-8" srcdir="${workspace}/${project.name}/src" destdir="${workspace}/${project.name}/WebContent/WEB-INF/classes" classpath="${was_cp}">
</javac>
但是,我又收到了一个错误:
Caused by: java.io.IOException: Cannot run program "C:\java1.6\bin\javac": CreateProcess error=206, The filename or extension is too long.