Gradle依赖性管理:编译错误



我有一个使用EJB和JPA的项目。构建文件如下:

apply plugin: 'java'
apply plugin:'application'
mainClassName = "com.example.Main"
project.buildDir = 'target'
version = '0.1'
jar{
    destinationDir=project.buildDir
}
repositories {
    mavenCentral()
}
dependencies {
    compile 'org.glassfish:javax.ejb:3.0.1','org.eclipse.persistence:javax.persistence:2.0.0'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}

当我" gradle Clean compilejava"该项目时,我会得到这些错误:

/home/user/Dropbox/project/src/main/java/com/example/TestClient.java:6: error: package javax.persistence does not exist
import javax.persistence.NamedQuery;
                        ^
/home/user/Dropbox/project/src/main/java/com/example/TestCounter.java:9: error: cannot find symbol
@Entity
 ^
  symbol: class Entity
/home/user/Dropbox/project/src/main/java/com/example/TestCounter:10: error: cannot find symbol
@NamedQuery(name = "findclient", query = "SELECT c FROM TestCounter c")
 ^

但是,使用相同的依赖项,我可以用Maven编译该项目。依赖性声明一定有问题。花了一些时间阅读Gradle网站,他们获得了很多" BLA BLA"的销售销量,但在真实的事情上没有很多例子。

我一直在试图使它起作用,因此忘了将依赖关系从运行时更改为OLI提到的编译。因此,如果有人遇到这个问题,我将留下这个问题。

最新更新