2013-07-08 39 views
6

Tôi có một thiết lập đa dự án trong maven và cố gắng chuyển sang gradle. Tôi đang cố gắng tìm hiểu làm thế nào để có một phụ thuộc của dự án thử nghiệm bao gồm jar thử nghiệm của một dự án khác. Ngay bây giờ tôi đã điều sau đây trong PROJECTA:gradle kéo thử nghiệm jar từ dự án khác

packageTests = task packageTests(type: Jar) { 
    classifier = 'tests' 
    from sourceSets.test.output 
} 

tasks.getByPath(":ProjectA:jar").dependsOn(packageTests) 

Và trong ProjectB tôi có:

testCompile project(path: ':ProjectA', classifier: 'tests') 

tôi thấy rằng các xét nghiệm của tôi đang thất bại trong việc biên dịch. Có vẻ như chúng thiếu các lớp được định nghĩa trong jar thử nghiệm. Khi tôi kiểm tra thư mục xây dựng, tôi thấy rằng ProjectA-0.1.56-SNAPSHOT-tests.jar có mặt.

Trong maven tôi đã có sau cho PROJECTA:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.4</version> 
    <executions> 
     <execution> 
     <phase>package</phase> 
     <goals> 
      <goal>test-jar</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 

Và điều này cho ProjectB:

<!-- Testing --> 
<dependency> 
    <groupId>com.example</groupId> 
    <artifactId>ProjectA</artifactId> 
    <version>0.1.56-SNAPSHOT</version> 
    <type>test-jar</type> 
</dependency> 

Làm thế nào tôi có thể có được điều này để làm việc giống như maven?

+1

Hãy xem ở đây http://stackoverflow.com/questions/5144325/gradle-test-dependency và có http://stackoverflow.com/ câu hỏi/5644011/đa dự án-kiểm tra-phụ thuộc-với-gradle – Efthymis

Trả lời

2

Những gì bạn sẽ kết thúc với một cái gì đó giống như

tasks.create([ 
    name: 'testJar', 
    type: Jar, 
    group: 'build', 
    description: 'Assembles a jar archive containing the test classes.', 
    dependsOn: tasks.testClasses 
]) { 
    manifest = tasks.jar.manifest 
    classifier = 'tests' 
    from sourceSets.test.output 
} 

// for test dependencies between modules 
// usage: testCompile project(path: ':module', configuration: 'testFixtures') 
configurations { testFixtures { extendsFrom testRuntime } } 

artifacts { 
    archives testJar 
    testFixtures testJar 
} 

tasks.uploadArchives.dependsOn testJar 
Các vấn đề liên quan