2013-07-18 21 views
6

Chúng tôi đang xây dựng các dự án Android của chúng tôi với Maven và IntelliJ IDEA. Đôi khi, chúng tôi phải thực thi "Reimport All Maven Projects", ví dụ: để cập nhật phụ thuộc. Vấn đề với điều đó là nó luôn làm lộn xộn các thư mục nguồn cho các tài nguyên: tất cả các mô-đun nhận được "gen" và "target/generated-source/r" có vẻ là nguyên nhân cho các bản sao. Vì vậy, sau khi reimporting, chúng ta cần phải tự xóa một trong những (thường là "gen" thư mục). Tất nhiên, chúng tôi muốn tránh bước này. Chúng tôi đã thử một số cài đặt cho khía cạnh Android, nhưng không có may mắn cho đến nay.Các lớp trùng lặp R & BuildConfig sau khi "Reimport All Maven Projects"

Vì vậy, làm cách nào chúng ta có thể định cấu hình IntelliJ để thực hiện nhập lại Maven phù hợp mà chỉ hoạt động?

+0

Có thể cấu trúc dự án của bạn khác với mặc định của maven là mục tiêu/nguồn được tạo, v.v. Hãy xem xét điều này: http://maven.apache.org/guides/mini/guide-using-one-source-directory .html – morpheus05

+0

@greenrobot có giải pháp nào không? Tôi đang gặp vấn đề này trên maven và thực sự bị mắc kẹt ở đây: (điều kỳ lạ là nó đã làm việc cho đến tối hôm qua, đột nhiên nó bắt đầu tiếp tục nói lớp trùng lặp R và BuildConfig. –

Trả lời

2

Theo trả lời của Sven Strohschein tại http://youtrack.jetbrains.com/issue/IDEA-94901 bạn có thể thử:

  1. Xóa các thư mục "gen", "target" và "out"
  2. Hoàn nguyên các thay đổi trong các tệp "ipr" và "iml" (hoặc chỉ xóa tất cả, thậm chí là thư mục .idea)
  3. Bắt đầu IntelliJ 12
  4. Mở tập tin pom
  5. Nhấp chuột phải -> "Maven" -> "tái nhập"
  6. "Xây dựng" -> "Rebuild dự án"

trình fo tôi.

0

Từ mô tả ở trên, tôi đoán rằng cấu trúc dự án của bạn khác với mặc định của maven. Xem Introduction to the POM. Nhưng tôi nghĩ rằng android android:generate-sources là thú vị hơn nếu bạn đã thay đổi tài sản thư mục, vv

Ví dụ:

<sourceDirectory>${basedir}/src</sourceDirectory> 
<outputDirectory>${basedir}/target/classes</outputDirectory> 
+0

Vâng, nó khác với bố cục Maven tiêu chuẩn.Thư mục là bố cục Android cũ với thư mục src và gen trực tiếp trong thư mục gốc của dự án. Bạn có đề xuất cụ thể? –

+0

Tôi đã thay đổi bài đăng của mình. Tôi không có dự án android nên tôi không thể kiểm tra cấu hình android: generate-sources. Tôi nghĩ bạn phải thay đổi một số chi tiết về điều đó. – morpheus05

+0

Không chắc chắn về cách tiếp cận này: Chúng tôi đã có src và mặc định cho thư mục res đã là $ {project.basedir}/res. –

1

Sau khi IDEA phát hiện và thêm khía cạnh Android vào mô-đun, nó sẽ bắt đầu tạo thư mục gen ở vị trí thông thường, nhưng maven-android-plugin sẽ tạo thư mục riêng theo thư mục target.

Bạn cần thông báo cho IDEA để đặt các tệp được tạo tại cùng một vị trí nơi maven-android-plugin tạo chúng.

thiết lập khía cạnh android Thứ nhất, sử dụng mô-đun và kiểm tra các tùy chọn để sử dụng Maven mục tiêu thay vì tạo ra bởi chính nó:

enter image description here

Sau đó, đi đến thiết lập mô-đun và thiết lập đường dẫn đầu ra tương tự như của Maven, đó là target thư mục:

enter image description here

Xóa gen thư mục, làm mvn clean để xóa tất cả unnece các tệp ssary.

Các vấn đề liên quan