2012-04-10 30 views
5

Tôi có một thiết lập dự án Android bằng cách sử dụng plugin maven-android. Plugin này tuân thủ các thư mục đầu ra maven cho vị trí của tệp R.java (ví dụ: target/generated-sources/r).Thay đổi thư mục đầu ra cho Android R.java trong Eclipse khi sử dụng Maven

Tuy nhiên, khi sử dụng dự án này trong Eclipse, tôi không thể định cấu hình aapt để dựa vào thư mục đó.

Thậm chí nếu tôi tự đi vào các tính chất của dự án và thiết lập các thư mục bằng tay, các plugin ADT đi trong và resets chỉ một số cài đặt (ví dụ thêm /gen thư mục trở lại như một thư mục nguồn, và khôi phục sản lượng thư mục để /bin/classes thay vì /target/classes), trong khi rời khỏi thư mục quạ /target/generated-sources/r và phá vỡ bản dựng của dự án.

Tôi muốn sử dụng cấu trúc thư mục Maven mặc định với ADT Eclipse. Bất kỳ ý tưởng về cách tôi có thể làm điều này?

Cảm ơn


Đối phó với các ý kiến:

  • Vâng, đang sử dụng plugin M2E-android.
  • Do ADT vẫn tạo R.java trong /gen, Eclipse không thể biên dịch nếu vẫn tồn tại R.java dưới target/generated-sources/r do định nghĩa lớp trùng lặp.
+0

Bạn có đang sử dụng plugin m2e-android không? –

+0

_ khi rời thư mục maven/target/generated-sources/r và phá vỡ bản dựng của dự án._ Bạn có thể giải thích những gì bị hỏng khi xây dựng dự án trong Eclipse không? – yorkw

Trả lời

4

Thật không may, Android Connector for M2E không hỗ trợ thư mục được tạo di chuyển như thư mục gen ADT đến các thư mục khác. Đây là một hạn chế của ADT, mặc dù có một vé để khám phá một con đường xung quanh hạn chế này:

https://github.com/rgladwell/m2e-android/issues/68

Nếu bạn muốn luôn cập nhật, xin vui lòng nhận xét về vé này.

+0

aapt cho phép người dùng chỉ định thư mục tùy chỉnh cho thư mục được tạo (bằng cách sử dụng chuyển đổi -J). Tôi sthe Android Connector dựa trên aapt dưới bao gồm? Tôi sẽ đi theo vé bạn đã đề cập. Cảm ơn. –

+0

Không có Trình kết nối Android nào chỉ dựa vào ADT sử dụng sdklib nội bộ để tạo nội dung. –

1

Điều này dường như được làm việc cho tôi:

Hãy để ADT giữ gen như một thư mục nguồn, nhưng thay đổi thư mục đầu ra cho rằng thư mục nguồn là /target/classes.

Tôi có thể xây dựng trong cả nhật thực và sử dụng maven từ dòng lệnh và tôi không gặp vấn đề về lớp R trong cả hai trường hợp. Về cơ bản, Eclipse tạo ra tệp R.java trong /gen, trong khi maven tạo nó trong /target/generated-sources/r, nhưng cả hai bản dựng đều đặt tệp R.class trong/target/classes.

Lưu ý: tại một thời điểm, tôi đã thêm /gen làm thư mục nguồn bổ sung trong số pom.xml sử dụng build-helper-maven-plugin và tôi phải xóa điều đó.

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