Tôi đã tạo một dự án công cụ ứng dụng Google bằng cách sử dụng dự án nguyên mẫu maven với nhà cung cấp Datanucleus JPA, về cơ bản tuân theo tài liệu về công cụ ứng dụng của Google.Thử nghiệm đơn vị gradle ở đâu cho công cụ ứng dụng Google mong đợi persistence.xml?
Mọi thứ hoạt động tốt khi chạy mục tiêu maven "test".
Bây giờ, tôi đã tích hợp dự án vào studio Android và muốn di chuyển tập lệnh xây dựng thành dạng tốt nghiệp. Tôi đã sao chép tất cả các phụ thuộc từ pom.xml
đến build.gradle
và dự án xây dựng tốt. Tuy nhiên, tất cả các thử nghiệm truy cập kho dữ liệu của Google đều không thành công.
Trong đầu ra thử nghiệm tôi nhận được thông báo sau:
Cảnh báo: Không META-INF/file persistence.xml được tìm thấy trong classpath của thread hiện hành!
Tôi đã kiểm tra build
thư mục được tạo ra trong việc xây dựng và không có thư mục chứa các persistence.xml
từ src/main/webapp/WEB-INF/classes/META-INF
Sử dụng maven, tuy nhiên, nó được đặt một cách chính xác trong thư mục target/myapp-1.0-SNAPSHOT/WEB-INF/classes/META-INF
.
Tôi đã thử sao chép persistence.xml
bằng cách sử dụng tác vụ sao chép gradle vào các vị trí khác nhau, chẳng hạn như build/classes/META-INF
build/classes/webapp/WEB-INF/classes/META-INF
v.v. nhưng không có tác dụng.
Trong khi tôi chắc chắn không biết đủ về gradle, vv để dứt khoát trả lời này, Goog toàn năng đã cho tôi [SO câu hỏi này] (http://stackoverflow.com/questions/1279060/jpa-with-toplink- không-meta-inf-persistence-xml-đã được tìm thấy-trong-classpath) mà có thể giúp đỡ. – Becuzz
Cảm ơn bạn đã chỉ ra điều này. Tuy nhiên, dự án của tôi đang xây dựng tiền phạt WAR. Tệp persistence.xml được đặt chính xác vào thư mục WEB-INF/classes/META-INF. Đây không phải là vấn đề. Vấn đề là khi chạy thử nghiệm đơn vị (nơi không có WAR đang được xây dựng), persistence.xml phải được đặt * ở đâu đó *. Tôi đang yêu cầu điều này ở đâu đó. – itchee
cách tiếp cận của tôi sẽ là đặt 1 trong mỗi thư mục cho đến khi nó chạy :) có vẻ như lame nhưng đã được chứng minh là hiệu quả – deW1