2010-03-30 27 views
10

Tôi đã đoạn sau trong pom.xml của tôi (Full pom đính kèm dưới đây có thể được thực hiện)Maven nhật thực không thêm một sự phụ thuộc

<dependency> 
    <groupId>aspectj</groupId> 
    <artifactId>aspectjrt</artifactId> 
    <version>1.5.3</version> 
</dependency> 

và thuộc một trong các file Java của tôi, tôi tham khảo một lớp org.aspectj.lang.ProceedingJoinPoint. Khi tôi làm một "mvn sạch cài đặt" nó biên dịch và xây dựng tốt nhưng khi tôi làm một nhật thực: nhật thực, và nhập khẩu các dự án trong nhật thực nó mang lại cho tôi một lỗi The import org.aspectj cannot be resolved. Tôi đã kiểm tra tệp .classpath đã được tạo và nó không có mục nhập vào tệp này. Tôi đã thử một "mvn dependency: tree" và nó liệt kê tiền phạt này.

Tôi không có bất kỳ cài đặt ưa thích nào để không biên dịch bất kỳ tệp java nào. Nó chỉ là một pom thường xuyên mà câu đố tôi.

Ai đó có thể cho tôi biết điều gì đang xảy ra ở đây không?

UPDATE 1: Tôi đang sử dụng maven eclipse Version plugin: 2,7

UPDATE 2: Chỉ cần sử dụng pom bên dưới và làm một mvn eclipse:clean eclipse:eclipse từ dòng lệnh

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.ekanathk</groupId> 
    <artifactId>stackoverflow</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.1</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>aspectj</groupId> 
      <artifactId>aspectjrt</artifactId> 
      <version>1.5.3</version> 
     </dependency> 
     <dependency> 
      <groupId>aspectj</groupId> 
      <artifactId>aspectjweaver</artifactId> 
      <version>1.5.3</version> 
     </dependency> 
    </dependencies> 
</project> 
+0

Tôi đã thử với pom được cung cấp và nó đã làm việc cho tôi. Chỉ trong trường hợp, bạn đang sử dụng phiên bản Maven nào? –

+0

bạn có chắc POM đang được lưu vào đĩa bởi Eclipse không? –

Trả lời

4

Tôi chỉ cố gắng để tạo lại vấn đề và ... không thể. Đây là .classpath tôi nhận được sau khi thêm AspectJ: phụ thuộc 1.5.3 cho một dự án vừa tạo:: aspectjrt: jar

<classpath> 
    <classpathentry kind="src" path="src/test/java" output="target/test-classes" including="**/*.java"/> 
    <classpathentry kind="src" path="src/main/java" including="**/*.java"/> 
    <classpathentry kind="output" path="target/classes"/> 
    <classpathentry kind="var" path="M2_REPO/aspectj/aspectjrt/1.5.3/aspectjrt-1.5.3.jar"> 
    <attributes> 
     <attribute value="jar:file:/home/pascal/.m2/repository/aspectj/aspectjrt/1.5.3/aspectjrt-1.5.3-javadoc.jar!/" name="javadoc_location"/> 
    </attributes> 
    </classpathentry> 
    <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar" sourcepath="M2_REPO/junit/junit/3.8.1/junit-3.8.1-sources.jar"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 
</classpath> 

Phiên bản nào của các plugin maven nhật thực bạn đang sử dụng? Bạn đã định cấu hình nó để sử dụng AJDT chưa? Bạn có thể hiển thị cấu hình của mình không?

+0

Sử dụng plugin eclipse Maven 2.7. Làm thế nào để cấu hình nó để sử dụng AJDT? Thêm vào đó, nó không hoạt động với cấu hình Zero. aspectj chỉ là một thư viện khác như nói log4j? –

+1

Chỉ cần thêm một phụ thuộc vào classpath là không cấu hình (một lần trong pom), như được hiển thị ở trên. Tuy nhiên, các plugin eclipse không thể đoán nếu bạn đang sử dụng AJDT hay không, do đó bạn phải nói với anh ta (http://maven.apache.org/plugins/maven-eclipse-plugin/examples/ajdt-projects.html). Nhưng điều này không giải quyết được vấn đề đường dẫn lớp kỳ lạ. BTW, tôi đề nghị sử dụng phiên bản 2.8. –

+0

Chỉ cần sử dụng plugin Eclipse eclipse 2.8 giải quyết được vấn đề. Tôi chỉ ghét các hệ thống cố gắng "quá thông minh" hơn những gì chúng được cho là vậy. Trong trường hợp này tôi đã kiểm tra một số mã và muốn nhận được trong nhật thực ASAP nhưng những thứ như thế này là một nỗi đau trong ***. –

8

Tôi gặp sự cố tương tự. Chạy mvn eclipse:clean và sau đó mvn eclipse:eclipse đã giúp.

+1

Tôi đã thử điều này và điều này không giúp –

+0

sửa nó cho tôi, cảm ơn –

+0

vẫn hoạt động như một sự quyến rũ! cám ơn! – Nigul

7

Tôi đã gặp sự cố tương tự. Eclipse plugin cho maven giả định Eclipse có hỗ trợ riêng cho AspectJ. Vì vậy, bạn cần phải nói với nó rằng bạn không có (hoặc cho nó biết phiên bản bạn có). Thêm

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-eclipse-plugin</artifactId> 
    <configuration> 
     <ajdtVersion>none</ajdtVersion> 
    </configuration> 
</plugin> 

đến <build><plugins> phần sẽ trợ giúp.

+0

điều này giải quyết vấn đề của tôi ngay cả khi không nâng cấp lên 2,8 maven-eclipse plugin. Cảm ơn! – guido

+0

Đẹp nhất! Không chắc chắn tại sao câu trả lời này là xuống ở đây mặc dù.Đó là câu trả lời thực tế duy nhất cho câu hỏi trên trang! :) – Steve

1

Bạn đã thử sử dụng m2eclipse thay thế? Nó có xu hướng tạo ra kết quả tốt hơn nhiều trong kinh nghiệm của tôi.

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