我在Mavenised项目中写了一个Aspect。 PROJECT_A
现在我想在PROJECT_B中使用PROJECT_A.jar,它是非公认的。
在PROJECT_B中,我想使用我在PROJECT_A中使用方面编写的注释。
我尝试使用aspectJ插件导出PROJECT_A.jar,如下所示。但是当我在PROJECT_B中使用它时 - 我的注释不能按预期工作。
<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>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
我是使用AspectJ的新手,我没有在PROJECT_B中没有maven的情况下如何做到这一点。
请帮忙,感谢任何帮助:)
答案 0 :(得分:0)
首先,升级到AspectJ Maven 1.9。
然后mavenise项目B!这使您可以使用AspectJ Maven插件将方面编织到您的其他模块中,即使在编译之后也是如此。这称为二元编织。请阅读plugin documentation,特别是有关参数WebClient client = WebClient.create("http://example.com");
....
@GetMapping(value = "/account")
public Mono<String> account() {
Mono<Account> account = client.get()
.url("/accounts/{id}", 1L)
.accept(APPLICATION_JSON)
.exchange(request)
.then(response -> response.bodyToMono(Account.class));
return account;
}
和aspectLibraries
的信息,具体取决于您要采用的方法。
或者,使用weaveDependencies
启动JVM并使用load-time weaving (LTW)的AspectJ编织代理。但是不要忘记通过META-INF/aop.xml提供LTW配置。
无论哪种方式,你都有选择。但两者都要求您阅读一些文档或至少搜索此站点以获取示例。