2010-08-24 35 views
10

Trong dự án của chúng tôi, chúng tôi sử dụng các cấu hình khởi chạy Eclipse đang được kiểm soát phiên bản để chia sẻ với tất cả các nhà phát triển. Bây giờ nó là cần thiết để bao gồm một kho lưu trữ bên ngoài vào classpath của tệp cấu hình khởi chạy. May mắn là kho lưu trữ được yêu cầu nằm trong kho lưu trữ Maven của mỗi nhà phát triển.Làm thế nào để sử dụng các biến cho định nghĩa classpath trong các cấu hình khởi chạy Eclipse?

Tôi đã phát hiện ra rằng có một biến classpath được gọi là M2_REPO tham chiếu đến kho lưu trữ Maven cục bộ (hợp lệ cho bất kỳ nhà phát triển nào).

Nhưng cách sử dụng biến này trong định nghĩa đường dẫn lớp sau để thay thế đường dẫn tuyệt đối?

<listAttribute key="org.eclipse.jdt.launching.CLASSPATH"> 
    ... 
    <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;runtimeClasspathEntry externalArchive=&quot;C:/Dokumente und Einstellungen/050967/.m2/repository/com/google/gwt/gwt-dev/2.0.3/gwt-dev-2.0.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;"/> 
    ... 
</listAttribute> 

Hoặc có cách nào để đưa biến môi trường (ví dụ: Windows '%USERPROFILE% có thể trợ giúp) không?

Trả lời

20

Chỉnh sửa cấu hình khởi chạy của bạn. Chuyển đến tab "classpath". Tập trung vào "Mục nhập của người dùng". Nhấp vào nút "Nâng cao".

  • Để thêm một mục dựa trên một biến classpath, chọn Thêm classpath biến và nhấn OK. Một hộp thoại sẽ mở ra. Tập trung vào M2_REPO và nhấp vào nút "Kéo dài". Chọn tệp JAR của bạn.
  • Để thêm mục nhập dựa trên biến môi trường hệ thống , hãy chọn Thêm chuỗi biến và trong hộp chỉnh sửa bên dưới, nhập: ${env_var:your-environment-variable-name}/path-to-jar. Ví dụ: nếu biến môi trường hệ thống của bạn là MYVAR và tệp JAR là dưới subdir/myfile.jar, bạn nên nhập ${env_var:MYVAR}/subdir/myfile.jar.
+0

Tuyệt vời. Đó là nó! Cảm ơn Isaac! – thommyslaw

+0

Có thể thực hiện tương tự với biến M2_REPO không? Nếu tôi làm những gì bạn nói ở điểm đầu tiên nó không giữ biểu thức biến trong tệp khởi chạy thay vào đó nó thay thế nó bằng đường dẫn đầy đủ của JAR chỉ hoạt động trên máy tính của tôi. Việc chỉnh sửa tệp bằng tay không phải là giải pháp vì Eclipse thêm đường dẫn của tôi vào lần khởi chạy đầu tiên. Có cách nào để làm được việc này? Tôi đưa ra một câu hỏi mới từ điều này. – NagyI

+0

Đây là nó: http: // stackoverflow.com/questions/18897954/how-to-keep-m2-repo-variable-dynamic-in-aspect-path-of-an-eclipse-java-aspectj-r – NagyI

0

Bạn có thể tải giá trị đó từ maven properties.

Đường dẫn kho lưu trữ của Maven trong thuộc tính maven.repo.local.

Đặt ${maven.repo.local} vào tệp cấu hình của bạn.

<listAttribute key="org.eclipse.jdt.launching.CLASSPATH"> 
    ... 
    <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;runtimeClasspathEntry externalArchive=&quot;${${maven.repo.local}}/com/google/gwt/gwt-dev/2.0.3/gwt-dev-2.0.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;"/> 
    ... 
</listAttribute> 

Sau đó thiết lập filtering trong pom.xml cho tập tin cấu hình của bạn để ${maven.repo.local} sẽ được thay thế bằng giá trị tài sản.

+1

Thật không may là không hoạt động. Khi cố chạy tệp khởi chạy của tôi từ trình đơn "Chạy ..." của Eclipse, tôi nhận được thông báo lỗi như "Lưu trữ $ {$ {maven.repo.local}}/com/google/... không tồn tại". Rõ ràng biến không được giải quyết. Bất kỳ ý tưởng nào khác? – thommyslaw

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