0

我配置 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")

但是,还有其他解决方案吗?比如 Jenkins 中的配置?我不想更改我的代码,因为我的项目仍然在 Eclipse 中编译成功(但在 Jenkins 中出错)

4

1 回答 1

0

我找到了原因,是因为我的詹金斯仍然使用不同的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.
于 2018-01-09T03:01:24.547 回答