Thông thường, chỉ các lớp được sử dụng trong ứng dụng mới thực sự được biên dịch.
Trong trường hợp của bạn, tôi đoán rằng nó chỉ là các bài kiểm tra đơn vị bị hỏng cản trở việc biên dịch (trái ngược với bất kỳ lớp Java nào khác trong thư mục /main
).
Lý do là thế này: Khi chạy tất cả các bài kiểm tra đơn vị trong một gói hoặc nguồn thư mục, tìm kiếm IntelliJ và bao gồm tất cả các tập tin mà xuất hiện như kiểm tra đơn vị theo mặc định: những người có Test
hoặc Suite
trong tên lớp, mà còn các chú thích được chú thích với @Test
hoặc @Suite
. Vì vậy, cách dễ nhất để loại trừ bài kiểm tra của bạn là tạo thư mục nguồn thứ ba, gọi nó/bỏ qua và không phải đánh dấu thư mục đó làm thư mục nguồn trong IntelliJ. Sau đó, bạn có thể thả bất kỳ tệp nào mà bạn không muốn đưa vào bộ sưu tập của mình ở đó tạm thời và kéo nó trở lại thư mục gốc khi bạn muốn tiếp tục làm việc trên đó. Hãy cẩn thận, mặc dù: Bạn sẽ nhận được chỉ hỗ trợ công cụ hạn chế nếu bạn mở và chỉnh sửa các tập tin trong một thư mục nguồn không được đánh dấu, do đó, nó thực sự nên được sử dụng cho "bãi đậu xe" chỉ.
Bạn cũng có thể thay đổi đuôi tệp, như câu trả lời khác gợi ý, nhưng sau đó IntelliJ cũng sẽ thay đổi cách xử lý tệp theo các khía cạnh khác, không chỉ trong quá trình biên dịch.
Ngoài ra, nếu bạn đang sử dụng JUnit 4, bạn luôn có thể chú thích bất kỳ phương pháp thử nghiệm nào, hoặc toàn bộ lớp thử, với @Ignore
và nó sẽ bị bỏ qua trong khi chạy thử nghiệm. Điều này yêu cầu lớp phải chính thức chính xác, mặc dù, tức là: không có lỗi thời gian biên dịch.
P.S: Bạn cần thực sự di chuyển thử nghiệm sang một thư mục khác, nếu bạn thực sự muốn gói thay đổi - không chỉ chỉnh sửa khai báo package
. Nếu không, một tuyên bố không phù hợp cũng sẽ được coi là một lỗi.
Cảm ơn bạn CrazyCoder. Để bất cứ ai đọc điều này ... Tôi đã cố gắng để làm cho trường hợp sử dụng của tôi càng đơn giản càng tốt nhưng tôi thấy rằng câu trả lời không áp dụng cho kịch bản thực sự của tôi. Tôi có thêm một ảnh chụp màn hình khác và chỉnh sửa câu hỏi ban đầu của mình hoặc bắt đầu một câu hỏi mới không? – Gary
Tôi tin rằng câu trả lời này bao gồm câu hỏi gốc. Nếu bạn có một câu hỏi/kịch bản khác, hãy đặt câu hỏi/kịch bản mới để tránh nhầm lẫn và yêu cầu tất cả người dùng đã trả lời chỉnh sửa câu trả lời của họ. – CrazyCoder