我想在Gradle项目中使用AspectJ(这不是Android项目,只是一个简单的Java应用程序)。
这是我的build.gradle的样子:
apply plugin: 'java'
buildscript {
repositories {
maven {
url "https://maven.eveoh.nl/content/repositories/releases"
}
}
dependencies {
classpath "nl.eveoh:gradle-aspectj:1.6"
}
}
repositories {
mavenCentral()
}
project.ext {
aspectjVersion = "1.8.2"
}
apply plugin: 'aspectj'
dependencies {
//aspectj dependencies
aspectpath "org.aspectj:aspectjtools:${aspectjVersion}"
compile "org.aspectj:aspectjrt:${aspectjVersion}"
}
代码可以编译,但是该方面似乎没有被编织。有什么事吗
我已经为此苦苦挣扎了一段时间,所以这个配置我使用并且效果很好。
在您的配置中执行此操作。
configurations {
ajc
aspects
aspectCompile
compile{
extendsFrom aspects
}
}
在依赖项中,使用以下配置。如果您不使用spring fwk,则不需要Spring依赖项。
dependencies {
//Dependencies required for aspect compilation
ajc "org.aspectj:aspectjtools:$aspectjVersion"
aspects "org.springframework:spring-aspects:$springVersion"
aspectCompile "org.springframework:spring-tx:$springVersion"
aspectCompile "org.springframework:spring-orm:$springVersion"
aspectCompile "org.hibernate.javax.persistence:hibernate-jpa-2.1-api:$hibernateJpaVersion"
}
compileJava {
sourceCompatibility="1.7"
targetCompatibility="1.7"
//The following two lines are useful if you have queryDSL if not ignore
dependsOn generateQueryDSL
source generateQueryDSL.destinationDir
dependsOn configurations.ajc.getTaskDependencyFromProjectDependency(true, "compileJava")
doLast{
ant.taskdef( resource:"org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties", classpath: configurations.ajc.asPath)
ant.iajc(source:"1.7", target:"1.7", destDir:sourceSets.main.output.classesDir.absolutePath, maxmem:"512m", fork:"true",
aspectPath:configurations.aspects.asPath,
sourceRootCopyFilter:"**/.svn/*,**/*.java",classpath:configurations.compile.asPath){
sourceroots{
sourceSets.main.java.srcDirs.each{
pathelement(location:it.absolutePath)
}
}
}
}
}
我不使用使用ant和Aspectj编译器的插件来执行此操作,可能会有一种简单的方法
我想在Gradle上的Android项目中集成以下库: 隆坡 使用AspectJ进行机器人绑定 匕首 为了将RoboBinding与AspectJ和android工具1.1结合使用。0我使用此修复程序编译了aspectj插件。 所有库都使用一些编译时注释处理。我发现Lombok与AspectJ不兼容。我注意到Robobind的注释处理器使用的是apt,而lombok只在提供的情况下工作(Dagge
我正在使用Spring 3.1.1版的应用程序中工作,现在我需要为其添加一些方面。这些方面是用aspectj语言编写的,没有注释。我已经阅读了Spring docs第8.8章,但我正在努力使其工作。 我的spring配置如下所示: 在我的pom中,是一个Maven项目,我有spring aop、aspectjrt和aspectjweaver作为依赖项。 我的问题是,当启动应用程序时,我得到了一个
问题内容: 在Google IO中,宣布了新的构建系统gradle来替换ant。我的项目正在使用Aspectj,我想在我的项目中使用它。我无法弄清楚一些变量使其正常工作。我在那里找不到android。*输出类路径。有人可以帮忙吗? 这是我当前的build.gradle: 这是旧的ant代码,效果很好:http: //code.google.com/p/anymemo/source/browse/c
这是一个已知的问题,因为Spring AOP使用的是基于代理的方法,该方法不会“看到”同一个类中的内部调用。显然我可以通过使用AspectJ而不是Spring AOP来解决这种情况。如果我没有理解错的话,它可以从Spring内部进行配置。从我的发现来看,我应该包含注释来配置Spring使用AspectJ而不是自己的AOP。不幸的是,这没有帮助,在添加注释之后,没有发生对被注释的方法的拦截。 Spr
目录结构 1.Book,java 2.aop:BookProxy.java bean2.xml 1.在容器中注册两个组件 2.配置aop 1.切入点 2.切面 切入点为需要增强的方法 切面为增强的方向,是前方还是后方还是环绕还是异常还是返回 test 结果为在开始增强。
本文向大家介绍gradle 按需配置,包括了gradle 按需配置的使用技巧和注意事项,需要的朋友参考一下 示例 如果对构建进行概要分析显示在“配置项目”上花费了大量时间,则“按需配置”选项可能会提高性能。 您可以通过编辑$GRADLE_USER_HOME/.gradle/gradle.properties(~/.gradle/gradle.properties默认情况下)并设置来启用按需配置模式