【发布时间】:2016-02-08 11:16:15
【问题描述】:
我正在尝试在我已编译并部署到 aws lambda 的概念证明类上从 gradle 运行一个简单的 junit 测试。 Auth.java 类采用具有单个属性 email 的 POJO。它可以自行编译并在 aws 上运行。但是,当我运行时:
gradle build
我收到以下错误:
Auth.java:6: error: cannot find symbol
System.out.println(payload.email);
symbol: variable email
location: variable payload of type Object
1 error
:compileJava FAILED
如果我在TestAuth.java 中System.out.println(payload.email); 我可以访问对象的属性没问题。我在这里没有掌握一些关键的 java 或 gradle 概念吗?我已经用 5 种不同的方式重构了这些东西,但我总是收到这个找不到符号错误。有人有什么想法吗?这是我的简化代码。
./src/main/java/Auth.java
package works.valt.api;
public class Auth {
public Auth(Object payload) {
System.out.println(payload.email);
}
}
./src/test/java/TestAuth.java
import org.junit.Test;
import org.junit.Before;
import static org.junit.Assert.assertEquals;
import works.valt.api.Auth;
public class TestAuth {
public class Payload {
public String email = "test@testing.com";
}
private Payload payload;
// create payload
@Before
public void setUp() {
this.payload = new Payload();
}
@Test
public void testResponse() {
Auth response = new Auth(this.payload);
}
}
build.gradle
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
testCompile 'junit:junit:4.12'
}
test {
testLogging.showStandardStreams = true
}
task buildZip(type: Zip) {
from compileJava
from processResources
into('lib') {
from configurations.runtime
}
}
build.dependsOn buildZip
【问题讨论】:
标签: java gradle junit compiler-errors