2009-09-09 30 views
13

Tôi đang cố bắt đầu sửa đổi một ứng dụng hiện có với Eclipse. Trên thực tế tôi đã có nó làm việc trước đó, nhưng tôi đã xóa dự án, và bây giờ với "mvn eclipse: eclipse" Tôi nhận được như sau:Thiết lập dự án cho nhật thực bằng cách sử dụng maven

[INFO] Resource directory's path matches an existing source directory. Resources will be merged with the source directory src/main/resources 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Request to merge when 'filtering' is not identical. Original=resource src/main/resources: output=target/classes, include=[atlassian-plugin.xml], exclude=[**/*.java], test=false, filtering=true, 
merging with=resource src/main/resources: output=target/classes, include=[], exclude=[atlassian-plugin.xml|**/*.java], test=false, filtering=false 
[INFO] ------------------------------------------------------------------------ 
[INFO] Trace 
org.apache.maven.lifecycle.LifecycleExecutionException: Request to merge when 'filtering' is not identical. Original=resource src/main/resources: output=target/classes, include=[atlassian-plugin.xml], 
exclude=[**/*.java], test=false, filtering=true, merging with=resource src/main/resources: output=target/classes, include=[], exclude=[atlassian-plugin.xml|**/*.java], test=false, filtering=false 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:583) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:512) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:482) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142) 
     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336) 
     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129) 
     at org.apache.maven.cli.MavenCli.main(MavenCli.java:287) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
     at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
     at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 
     at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 
Caused by: org.apache.maven.plugin.MojoExecutionException: Request to merge when 'filtering' is not identical. Original=resource src/main/resources: output=target/classes, include=[atlassian-plugin.xm 
l], exclude=[**/*.java], test=false, filtering=true, merging with=resource src/main/resources: output=target/classes, include=[], exclude=[atlassian-plugin.xml|**/*.java], test=false, filtering=false 
     at org.apache.maven.plugin.eclipse.EclipseSourceDir.merge(EclipseSourceDir.java:302) 
     at org.apache.maven.plugin.eclipse.EclipsePlugin.extractResourceDirs(EclipsePlugin.java:1605) 
     at org.apache.maven.plugin.eclipse.EclipsePlugin.buildDirectoryList(EclipsePlugin.java:1490) 
     at org.apache.maven.plugin.eclipse.EclipsePlugin.createEclipseWriterConfig(EclipsePlugin.java:1180) 
     at org.apache.maven.plugin.eclipse.EclipsePlugin.writeConfiguration(EclipsePlugin.java:1043) 
     at org.apache.maven.plugin.ide.AbstractIdeSupportMojo.execute(AbstractIdeSupportMojo.java:511) 
     at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558) 
     ... 16 more 

Trả lời

31

Điều này có giúp cải thiện điều này không?

mvn org.apache.maven.plugins:maven-eclipse-plugin:2.6:eclipse 

này cho maven sử dụng phiên bản 2.6 (mà vẫn hoạt động) thay vì mặc định 2,7 (mà không).
Bạn sẽ phải đưa ra lệnh như thế này mọi lúc, do đó, có một chút bất tiện trong khi tệp thay đổi ở trên sẽ dẫn đến sửa lỗi một lần, nhưng theo cách này bạn không mạo hiểm vô tình phá vỡ thứ gì đó khác và bạn don ' t phải đi tìm kiếm các tập tin.
Nếu bạn không thể nhớ cú pháp lệnh, hãy sao chép nó vào một tệp văn bản để dễ tham khảo hơn.

Xem this thread.

Nó đề cập đến một sự thay đổi gần đây trong Maven Eclipse Plugin:

+2

nếu ai đó vẫn đang vật lộn với điều này, hãy xem https://bugs.eclipse.org/bugs/show_bug.cgi?id=317900 – rsilva4

0

Chúng ta có thể có một cái nhìn vào pom.xml của dự án?

Bạn có cố gắng chạy lệnh mvn clean eclipse:clean eclipse:eclipse không?

+0

Rất tiếc, điều đó không có tác dụng (mặc dù vậy, tôi đã không thử). mvn gói btw. hoạt động ... – egaga

8

Tôi nghĩ rằng câu trả lời VonC là một trong những quyền (1) nếu bạn đang sử dụng eclipse: eclipse mục tiêu. Cá nhân tôi tìm thấy nó rắc rối hơn nó có giá trị và thay vì sử dụng m2eclipse để quản lý các phụ thuộc, cam kết các tập tin siêu dữ liệu nhật thực để SCM.

Để tránh phải gọi nhật thực: nhật thực với tên đủ điều kiện như VonC đề xuất, bạn có thể định cấu hình plugin trong pom để sử dụng phiên bản chính xác. Đây là good practice.

Trong pom, xác định các plugin như sau:

<build> 
... 
    <plugins> 
    ... 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-eclipse-plugin</artifactId> 
     <version>2.6</version> 
    </plugin> 
    </plugins> 
</build> 

Sau đó, bất cứ khi nào bạn gọi các plugin nhật thực, phiên bản 2.6 sẽ được sử dụng.

+0

Cảm ơn bạn đã đề xuất này. – egaga

+0

m2eclipse và chỉ định phiên bản: +1 – VonC

+0

xin lưu ý rằng bằng cách dựa vào m2eclipse để xử lý cấu hình, bạn sẽ trở thành người phụ thuộc của cài đặt Eclipse (đang hoạt động!) Để xây dựng sản phẩm của bạn. Maven như vậy hoạt động trên dòng lệnh. Đối với một dự án có chủ sở hữu hobbyist, hoặc một dự án nhỏ có kích thước nhỏ, điều này có thể không liên quan, nhưng trong quá trình thiết lập công nghiệp, điều này không thể chấp nhận được, để có quá trình xây dựng phụ thuộc vào một số nhà phát triển PC – Ichthyo

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