cuốn sách gpt4 ai đã làm

java - AspectJ 与 Maven(仍然)无法工作

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 11:24:52 28 4
mua khóa gpt4 Nike

Tôi đang cố gắng sử dụng trong Eclipse Neon khía cạnhj Tạo một ví dụ maven dự án. Tuy nhiên, các khía cạnh không đan xen/làm việc (xem kết quả bên dưới). Tôi đã cố gắng tìm kiếm nhiều nguyên nhân và giải pháp nhưng không có nguyên nhân nào hiệu quả (xem các câu hỏi liên quan bên dưới). Bất kỳ trợ giúp/cái nhìn sâu sắc sẽ được đánh giá rất cao. Cảm ơn!

Công nghệ được sử dụng:

  • Javajdk-1.8
  • Nhật thực(Java EE)Neon 3
  • Apache Maven 3.5.0
  • Junit-4.5(Bao gồm thông qua maven)
  • khía cạnhjrt-1.8.9(Bao gồm thông qua maven)

(Tôi cũng đã cài đặt plugin AJDT của một dự án riêng trong bản cài đặt Eclipse của mình - không chắc liệu điều này có ngăn chặn không khía cạnhj Phiên bản kho lưu trữ Maven)

Mục lục:

cây $.
.
├── pom.xml
└──src
├── chính
└── java
└── com
└── xin chào |
| └── bắt đầu nhanh
├──App.java
└──AppAspect.java
└── kiểm tra
└── java
└── com
└── xin chào
└── khởi động nhanh
└──AppTest.java

Ứng dụng.java

gói com.hellomaven.quickstart;

Ứng dụng lớp công khai {
public static void main(String[] args) {
System.out.println("Xin chào thế giới!");
say("billy", "Rất vui được gặp bạn");
Chó d = Chó mới();
d.bark(2);
}

public static void say(Tên chuỗi, Từ chuỗi) {
System.out.println(name.toUpperCase() + " nói " + word.toLowerCase() + "!");
}
}

lớp chó {
Chó() {
System.out.println("..Mã init của Dog..");
}

public void vỏ cây (int n) {
cho (int i = 0; i < n; i++) {
System.out.print("vỏ cây ");
}
System.out.println("!");
}

}

AppAspect.java

gói com.hellomaven.quickstart;

nhập org.aspectj.lang.annotation.After;
nhập org.aspectj.lang.annotation.Around;
nhập org.aspectj.lang.annotation.Aspect;
nhập org.aspectj.lang.annotation.Before;
nhập org.aspectj.lang.annotation.Pointcut;

@Diện mạo
lớp công khai AppAspect {
@Before("thực thi(tĩnh công khai * *(..))")
kiểm tra khoảng trống công khaiAspectBefore() {
System.out.println("Trước khi được");
}

@Pointcut("thực thi(* *(..))")
kiểm tra khoảng trống công khaiAspectPointcut() {
System.out.println("Pointcut Được rồi");
}

@After("thực thi(* *(..))")
public void testAspectAfter() {
System.out.println("Sau khi được");
}

@Around("thực thi(* *(..))")
public void testAspectAround() {
System.out.println("Khoảng được");
}
}

pom.xml


xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0

com.hellomaven
bắt đầu nhanh
bình
0.0.1-SNAPSHOT

bắt đầu nhanh
http://maven.apache.org


1.8
1.8.9
4.5

UTF-8
UTF-8






org.apache.maven.plugins
maven-trình biên dịch-plugin
3.6.0

${java.version
${java.version

sai




org.codehaus.mojo
aspectj-maven-plugin
1.9

đúng
${java.version
${java.version
bỏ qua
${java.version
UTF-8
đúng



nguồn quy trình

biên dịch
biên dịch kiểm tra





org.aspectj
khía cạnh
${aspectj.version


org.aspectj
công cụ khía cạnh
${aspectj.version





org.codehaus.mojo
exec-maven-plugin
1.3

com.hellomaven.quickstart









junit
junit
${junit.version
kiểm tra



org.aspectj
khía cạnh
${aspectj.version



输出


Xin chào thế giới!
BILLY nói rất vui được gặp bạn!
..Mã khởi tạo của con chó..
vỏ vỏ!

Các câu hỏi liên quan tôi đã thử và không thành công:

câu trả lời hay nhất

Tôi không chắc tại sao, nhưng khi bao gồm khía cạnhjweaver-1.8.9 Các phần phụ thuộc, được cập nhật thành Junit-4.12 và sau khi thay đổi mã khía cạnh, mã hoạt động tốt. Dưới đây là mã khía cạnh được cập nhật (AppAspect.java):

gói com.hellomaven.quickstart;

nhập org.aspectj.lang.JoinPoint;
nhập org.aspectj.lang.annotation.After;
nhập org.aspectj.lang.annotation.Aspect;
nhập org.aspectj.lang.annotation.Before;
nhập org.aspectj.lang.annotation.Pointcut;

@Diện mạo
lớp công khai AppAspect {

@Pointcut("thực thi(* *(..))")
khoảng trống công khai xác địnhEntryPoint() {
}

@Before("defineEntryPoint()")
public void aaa(JoinPoint tham gia) {
System.out.println("khía cạnh trước");
}

@After("defineEntryPoint()")
public void bbb(JoinPoint joinPoint) {
System.out.println("khía cạnh sau");
}
}

cái này mớiphụ thuộc:



junit
junit
${junit.version
kiểm tra



org.aspectj
khía cạnh
${aspectj.version



org.aspectj
khía cạnhjweaver
${aspectj.version


Về java - AspectJ với Maven không hoạt động (vẫn), chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/44491891/

28 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress