[SPRING] Gradle 1.0 + Spring + AspectJ 빌드 문제
SPRINGGradle 1.0 + Spring + AspectJ 빌드 문제
@Configurable Spring 어노테이션을 사용하는 프로젝트에서 Maven 빌드를 Gradle로 마이그레이션하려고합니다. 그러나 (웹) 어플리케이션이 실행 중일 때 @Configurable 클래스 중 하나도 Gradle 빌드 아래에 주입되지 않습니다.
Maven에서는 다음 플러그인을 사용했습니다.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<configuration>
<aspectLibraries>
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
</aspectLibraries>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
Gradle 1.0의 경우 0.9 ajc 플러그인 (아래 URL)을 적용했지만 구성 / aspectLibraries / spring-aspects를 추가하는 방법을 알 수 없었습니다.
apply plugin: 'war'
apply plugin: 'jetty'
sourceCompatibility = 1.6
version = 1.0
// Based on: http://github.com/breskeby/gradleplugins/raw/0.9-upgrade/aspectjPlugin/aspectJ.gradle
configurations {
ajc
aspects
ajInpath
}
task compileJava(dependsOn: JavaPlugin.PROCESS_RESOURCES_TASK_NAME, overwrite: true) {
dependsOn configurations.ajc.getTaskDependencyFromProjectDependency(true, "compileJava")
doLast{
ant.taskdef( resource:"org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties", classpath: configurations.ajc.asPath)
ant.iajc(source:sourceCompatibility, target:targetCompatibility, destDir:sourceSets.main.output.classesDir.absolutePath, maxmem:"512m", fork:"true",
aspectPath:configurations.aspects.asPath, inpath:configurations.ajInpath.asPath, sourceRootCopyFilter:"**/.svn/*,**/*.java",classpath:configurations.compile.asPath){
sourceroots{
sourceSets.main.java.srcDirs.each{
pathelement(location:it.absolutePath)
}
}
}
}
}
dependencies {
ajc group: 'org.aspectj', name: 'aspectjtools', version: '1.6.12'
compile group: 'org.aspectj', name: 'aspectjrt', version: '1.6.12'
compile group: 'org.aspectj', name: 'aspectjweaver', version: '1.6.12'
compile group: 'org.springframework', name: 'spring-jdbc', version: '3.1.1.RELEASE'
compile group: 'org.springframework', name: 'spring-orm', version: '3.1.1.RELEASE'
compile group: 'org.springframework', name: 'spring-aop', version: '3.1.1.RELEASE'
compile group: 'org.springframework', name: 'spring-aspects', version: '3.1.1.RELEASE'
compile group: 'org.springframework', name: 'spring-web', version: '3.1.1.RELEASE'
compile group: 'org.springframework', name: 'spring-webmvc', version: '3.1.1.RELEASE'
compile group: 'org.springframework', name: 'spring-expression', version: '3.1.1.RELEASE'
}
Gradle 빌드 웹 응용 프로그램에서 스프링 측면을 작동 시키려면 어떻게해야합니까?
감사
해결법
-
==============================
1.나는이 게시물이 5 년 된 것을 알고 있지만 나는 대답을 가지고 있으며 인터넷에있는 다른 사람이 그렇지 않은 것으로 보인다. 나는 Gradle 3.3을 사용하고있다. (휴식을 준다, 2017). @Asynchronous 태그가 작동하는 AWS SWF 워크 플로를 가져 오는 내 Gradle 빌드 파일은 다음과 같습니다.
나는이 게시물이 5 년 된 것을 알고 있지만 나는 대답을 가지고 있으며 인터넷에있는 다른 사람이 그렇지 않은 것으로 보인다. 나는 Gradle 3.3을 사용하고있다. (휴식을 준다, 2017). @Asynchronous 태그가 작동하는 AWS SWF 워크 플로를 가져 오는 내 Gradle 빌드 파일은 다음과 같습니다.
buildscript { repositories { maven { url "https://maven.eveoh.nl/content/repositories/releases" } } dependencies { classpath "nl.eveoh:gradle-aspectj:1.6" } } project.ext { aspectjVersion = '1.8.9' } apply plugin: 'aspectj' apply plugin: 'java' dependencies { compile group: 'org.aspectj', name: 'aspectjrt', version:'1.8.9' compile group: 'org.aspectj', name: 'aspectjtools', version:'1.8.9' compile group: 'org.freemarker', name: 'freemarker', version:'2.3.25-incubating' compile group: 'com.amazonaws', name: 'aws-java-sdk-swf-libraries', version:'1.11.22' compile group: 'com.amazonaws', name: 'aws-swf-build-tools', version:'1.1' compile(group: 'org.springframework.boot', name: 'spring-boot-starter', version:'1.4.0.RELEASE') { exclude(module: 'commons-logging') } compile group: 'org.springframework.boot', name: 'spring-boot-configuration-processor', version:'1.4.0.RELEASE' testCompile(group: 'org.springframework.boot', name: 'spring-boot-starter-test', version:'1.4.0.RELEASE') { exclude(module: 'commons-logging') } aspectpath group: 'com.amazonaws', name: 'aws-java-sdk-swf-libraries', version:'1.11.22' }
나를 잡았던 중요한 점은 종속성에 aspectpath를 추가하는 것이 었습니다. 그걸 알아 내려면 나이를 먹었어.
from https://stackoverflow.com/questions/11550393/gradle-1-0-spring-aspectj-build-problems by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] management.port = 0 일 때 런타임시 스프링 부트 관리 포트 가져 오기 (0) | 2019.04.11 |
---|---|
[SPRING] 오류 : HHH000299 : 스키마 업데이트를 완료 할 수 없습니다. java.lang.NullPointerException (0) | 2019.04.11 |
[SPRING] Spring 트랜잭션을 다른 쓰레드에 전달하는 방법은? (0) | 2019.04.11 |
[SPRING] H2 데이터베이스 메모리 있음 - Spring / Hibernate를 통한 초기화 스키마 (0) | 2019.04.11 |
[SPRING] Spring Security의 기본 필터 스택에서 하나의 필터를 삭제하는 방법? (0) | 2019.04.11 |