2011-01-04 26 views
11

Có ai biết cách thay đổi vị trí đó không?Thay đổi thứ tự các vị trí trên đường dẫn lớp được tải lên bởi plugin chắc chắn

Ý tôi là từ

target/test-classes ... target/classes .... maven dependencies 

để

target/test-classes ... maven dependencies .... target/classes 

Nó liên quan đến này chắc chắn hơn-plugin feature request

Đó là bởi vì chắc chắn hơn-plugin không thể bao gồm/loại trừ các nguồn lực từ/target/classes. .. nó chỉ có thể bao gồm/loại trừ tài nguyên thông qua phần tử <testResources> chỉ có thể ảnh hưởng đến/target/test-classes, không phải/target/classes

Mọi chuyện xảy ra ở đây trong chắc chắn-plugin:

File projectClassesDirectory = new File(project.getBuild().getOutputDirectory()); 
if (!projectClassesDirectory.equals(classesDirectory)) 
{ 
    int indexToReplace = classpathElements.indexOf(project.getBuild().getOutputDirectory()); 
    if (indexToReplace != -1) 
    { 
     classpathElements.remove(indexToReplace); 
     classpathElements.add(indexToReplace, classesDirectory.getAbsolutePath()); 
    } 
    else 
    { 
     classpathElements.add(1, classesDirectory.getAbsolutePath()); 
    } 
} 

File projectTestClassesDirectory = new File(project.getBuild().getTestOutputDirectory()); 
if (!projectTestClassesDirectory.equals(testClassesDirectory)) 
{ 
    int indexToReplace = classpathElements.indexOf(project.getBuild().getTestOutputDirectory()); 
    if (indexToReplace != -1) 
    { 
     classpathElements.remove(indexToReplace); 
     classpathElements.add(indexToReplace, testClassesDirectory.getAbsolutePath()); 
    } 
    else 
    { 
     classpathElements.add(0, testClassesDirectory.getAbsolutePath()); 
    } 
} 

getLog().debug("Test Classpath :"); 

for (Iterator i = classpathElements.iterator(); i.hasNext();) 
{ 
    String classpathElement = (String) i.next(); 

    getLog().debug(" " + classpathElement); 

    surefireBooter.addClassPathUrl(classpathElement); 
} 
+1

Điều này có mùi giống như bạn đang cố gắng giải quyết vấn đề sai –

+0

@Sean Patrick Floyed Tôi chắc chắn là không, nếu bạn đọc vấn đề JIRA, đặc biệt là 3 bình luận cuối cùng của tôi, tôi có lý do chính đáng cho nó – lisak

+0

@ lisak ý kiến ​​của bạn dường như có ý nghĩa, nhưng mùi vẫn còn: Đã có được một cách tốt hơn để đạt được những gì bạn đang cố gắng làm –

Trả lời

1

xem xét thử nghiệm trong một dự án riêng biệt. Nói chung, khi bạn có một dự án xung đột với The Maven Way, đó là giải pháp - chia nhỏ nó ra.

0

Điều tôi hiểu được từ liên kết yêu cầu tính năng của bạn là bạn có một số src/main/resources/config.xml và một phụ thuộc cũng có chứa config.xml mà bạn muốn sử dụng trong các thử nghiệm của mình. Có đúng không?

Nếu đúng như vậy, những gì bạn có thể làm là để di chuyển src/main/resources/config.xml đi nơi khác (không phải là một dir tài nguyên) của bạn, giống như src/config/config.xml và chúng bao gồm nó trong JAR cuối cùng của bạn/WAR bằng cách thiết lập cấu hình war hoặc jar plugin.

Bằng cách đó, các thử nghiệm của bạn sẽ thấy config.xml từ sự phụ thuộc của bạn chứ không phải là số src/config/config.xml vì nó không nằm trong đường dẫn lớp.

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