我看到的使用Gradle + Spring-data-neo4j + Aspectj的大多数配置都是针对Eclipse和/或使用Maven的。 我看不到找到完整的设置才能正常工作。

这是我的build.gradle:

apply plugin:'base'
apply plugin:'java'
apply plugin:'idea'

buildscript {
    repositories {
        maven {
            url "https://maven.eveoh.nl/content/repositories/releases"
        }
    }
    dependencies {
        classpath "nl.eveoh:gradle-aspectj:1.4"
    }
}

repositories {
    maven {
        url "http://m2.neo4j.org/content/repositories/releases/"
    }
    mavenCentral()
    mavenLocal()
}

project.ext {
    springVersion = "4.0.3.RELEASE"
    neo4jVersion = "2.0.1.RELEASE"
    springDataGraphVersion = "3.0.1.RELEASE"
    aspectjVersion = "1.7.4"

    sourceCompatibility = 1.7
    targetCompatibility = 1.7
}

apply plugin: 'aspectj'

compileAspect {
    xlint = 'warning'
}

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.6'

    compile "org.springframework:spring-context:${springVersion}"
    compile "org.neo4j:neo4j:${neo4jVersion}"
    // Provides Repository based Object <-> Graph Mapping
    compile "javax.validation:validation-api:1.0.0.GA"
    compile "org.springframework.data:spring-data-neo4j-aspects:${springDataGraphVersion}"
    compile 'javax.persistence:persistence-api:1.0-rev-1'


    testCompile 'junit:junit-dep:4.11'
    testCompile "org.springframework:spring-test:${springVersion}"
    testCompile 'org.hamcrest:hamcrest-all:1.3'
    // Access to Neo4j testing facilities: TestGraphDatabaseFactory
    testCompile "org.neo4j:neo4j-kernel:${neo4jVersion}:tests@jar"
    testRuntime 'org.slf4j:slf4j-simple:1.7.5'

    //aspectj dependencies
    aspectpath "org.aspectj:aspectjtools:${aspectjVersion}"
    compile "org.aspectj:aspectjrt:${aspectjVersion}"
    aspectpath group: "org.springframework.data", name: "spring-data-neo4j", version: springDataGraphVersion
}

configurations {
    runtime
    compileJava
    testCompileJava
}

// Generate wrapper for Gradle
task wrapper(type: Wrapper) {
    gradleVersion = '1.11'
}

当前文档似乎没有其中的Aspectj gradle信息。 我使用了2.3.5.RELEASE中的信息,该信息已合并到此版本中。 我还为编译器设置了ajc,但是我仍然认为缺少一些东西,因为那已经很旧了。 另外,我不是在使用pom.xml,而是在下面的Java配置文件。

@Configuration
@ComponentScan(basePackages = "domains")
@EnableNeo4jRepositories(basePackages = "repos")
//@EnableSpringConfigured
@EnableTransactionManagement
public class AppConfigTest extends Neo4jAspectConfiguration {

    public AppConfigTest () {
        setBasePackage("domains");
    }

    @Bean (destroyMethod = "shutdown")
    public GraphDatabaseService graphDatabaseService() {
        return new TestGraphDatabaseFactory().newImpermanentDatabase();
    }

}

============== [编辑1] =================

使用下面的@StefanArmbruster指出的项目eveoh / gradle-aspectj更新了上面的Gradle构建文件。 但是,现在出现此错误:

* Where:
Build file 'build.gradle' line: 52
> Could not find method aspectpath() for arguments [org.aspectj:aspectjtools:1.7.4] on root project

============== [编辑2] =================

更新了Gradle版本,暂时解决了上述问题,但现在我遇到了这个问题:

10:44:10 AM: Executing external task 'build'...
:processResources UP-TO-DATE
:compileAspect FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileAspect'.
> Error creating temporary file

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 42.556 secs
Permission denied
10:44:53 AM: External task execution finished 'build'.

===============>>#1 票数:3 已采纳

终于使它起作用了(至少它的这一部分)。 最终build.gradle:

apply plugin:'base'
apply plugin:'java'
apply plugin:'idea'

buildscript {
    repositories {
        maven {
            url "https://maven.eveoh.nl/content/repositories/releases"
        }
    }
    dependencies {
        classpath "nl.eveoh:gradle-aspectj:1.4"
    }
}

repositories {
    maven {
        url "http://m2.neo4j.org/content/repositories/releases/"
    }
    mavenCentral()
    mavenLocal()
}

project.ext {
    springVersion = "4.0.3.RELEASE"
    neo4jVersion = "2.0.1.RELEASE"
    springDataGraphVersion = "3.0.1.RELEASE"
    aspectjVersion = "1.7.4"

    sourceCompatibility = 1.7
    targetCompatibility = 1.7
}

apply plugin: 'aspectj'

compileAspect {
    xlint = 'warning'
}

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.6'

    compile "org.springframework:spring-context:${springVersion}"
    compile "org.neo4j:neo4j:${neo4jVersion}"
    // Provides Repository based Object <-> Graph Mapping
    compile "javax.validation:validation-api:1.0.0.GA"
    compile "org.springframework.data:spring-data-neo4j-aspects:${springDataGraphVersion}"
    compile 'javax.persistence:persistence-api:1.0-rev-1'


    testCompile 'junit:junit-dep:4.11'
    testCompile "org.springframework:spring-test:${springVersion}"
    testCompile 'org.hamcrest:hamcrest-all:1.3'
    // Access to Neo4j testing facilities: TestGraphDatabaseFactory
    testCompile "org.neo4j:neo4j-kernel:${neo4jVersion}:tests@jar"
    testRuntime 'org.slf4j:slf4j-simple:1.7.5'

    //aspectj dependencies
    aspectpath "org.aspectj:aspectjtools:${aspectjVersion}"
    compile "org.aspectj:aspectjrt:${aspectjVersion}"
    aspectpath group: "org.springframework.data", name: "spring-data-neo4j", version: springDataGraphVersion
}

configurations {
    runtime
    compileJava
    testCompileJava
}

// Generate wrapper for Gradle
task wrapper(type: Wrapper) {
    gradleVersion = '1.11'
}

构建脚本的位置,额外的属性和apply插件'aspectj'很重要。 我必须去弄弄我需要的顺序,而我已经有了。

我认为我仍然没有适当地编织,但这是一个不同的话题。

  ask by flamusdiu translate from so

未解决问题?本站智能推荐:

1回复

使用Intellij和Spring-Data-Neo4j / w在尝试创建Repos时,Aspectj会出现Java错误

我正在使用Intellij v13编写Spring-Data(使用AspectJ + Neo4j)。 如果我有以下服务文件: 使用该示例 ,上面的代码应该可行。 但是,Intellij给了我一个例外: 我到处搜索试图弄清楚为什么Intellij会这样做。 其他人看到这个?
1回复

Spring Data Neo4j JUnit4设置

我承认我是Java的工作方式的新手,而尝试运行简单的单元测试完全让我迷失了。 我正在构建一个数据访问库,并希望对其进行单元测试。 我正在使用Spring Data Neo4j 4.0.0.BUILD-SNAPSHOT,因为我需要连接到现实世界中的远程Neo4j服务器。 经过一整天的
1回复

java.lang.ClassNotFoundException:org.neo4j.ogm.drivers.embedded.driver.EmbeddedDriver

我在使用Spring Boot应用程序中使用Neo4j Community Edition 。 我的Neo4j上下文看起来像这样 而repository看起来像这样 我为应用程序设置了几个属性 在启动期间,应用程序失败了 我的build.gradle看起来像
1回复

spring-data-neo4j中的数据建模

我的图包含称为点和线的节点。 有一个称为“ NEXT”的关系类型,它连接两个点,并具有一个称为lineID (长lineID )的属性。 线节点仅由一个ID和对“根”点的引用组成。 遍历一条线是从其根节点开始,并遵循NEXT关系,该关系的lineID与要遍历的线的ID相匹配。 澄清一
2回复

Spring-Data-Neo4J类多态性

SDN v3.0.0发布Neo4j社区2.0.1 关于继承和集合,我遇到了一个问题。 也许有人可以协助解决此事。 我基本上具有以下结构。 我可以使用图形存储库持久保存图形,并且根据具体类正确存储所有各种属性。 我可以查询并获得具有正确属性的单个图形,并可以执行与neo4j“门
1回复

将WrappingNeoServerBootstrapper与spring-data-neo4j一起使用

是否可以将WrappingNeoServerBootstrapper与spring-data-neo4j一起使用? 使用不带spring-data-neo4j的嵌入式数据库时,可以使用WrappingNeoServerBootstrapper启用REST接口和Webadmin。 我使用s
2回复

Spring-Data-Neo4j注释的Cypher查询,匹配参数

我正在尝试使用Spring-Data-Neo4j-3.1.4参数化带注释的Cypher查询的匹配部分,如下所示。 第一种方法有效。 在第二种方法中将节点类型作为参数传递失败。 例外是: 如何将节点作为参数传递给Cypher查询?
1回复

spring-data-neo4j findByPropertyValue方法始终返回null?

我有社交模型: 和存储库: 但是当我想使用userID通过userId查找社交节点时: findByUserId始终返回null。
1回复

spring-data-neo4j删除nodeEntity和所有引用的节点

我有一个简单的图形模型: 1个 User有N个 SocialUser 。 我想知道在删除User实体时是否有任何办法可以通过spring-data-neo4j自动删除所有引用的SocialUser 。 到目前为止,这是我得到的: 域: 资料 : 我试过的
2回复

无法与Gradle一起使用spring-data-neo4j:2.3.1.RELEASE

我正在使用gradle,需要将最新的Spring Data Neo4j引入我的项目。 我的构建文件包括- 我的问题似乎与此几乎相同: 无法使用Neo4j 1.9.M05 还有这个: 在任何地方都找不到neo4j-cypher-dsl版本1.9.M04 当我运