2017-10-15 12 views
0

이야기 : 나는 최근에 발견 한 그왜 "jar.enabled = false"가 Gradle의 종속성에 영향을 줍니까?

dependencies { 
    compile project(':b-features') 
} 

를 통해 Gradle을 프로젝트 B를 참조 할 수있는에서 같은 프로젝트의-기능을 프로젝트 중지 멀티 프로젝트의 프로젝트에 jar.enabled = false 설정 B-기능 질문 : jar.enabled = false 프로젝트 A가 프로젝트 B를 성공적으로 참조하지 못하는 이유는 무엇입니까?

추가 정보 : 루트 프로젝트의

build.gradle :

루트 프로젝트의
group 'gradle.studies' 
apply plugin: 'java' 
... 

settings.gradle :

프로젝트 a-features
rootProject.name = 'multi-project-reference' 
include 'a-features' 
include 'b-features' 

build.gradle :

group 'gradle.studies' 
apply plugin: 'java' 
... 
dependencies { 
    compile project(':b-features') 
} 
... 
프로젝트 1,515,

build.gradle b-features

group 'gradle.studies' 
apply plugin: 'java'  
jar.enabled = false  
... 

클래스 A a-features 프로젝트 :

package outerproject; 

import innerproject.B; 

public class A { 
    public static void main(String[] args) { 
     B b = new B(); 
     System.out.println(b.getMsg()); 
    } 
} 

클래스 B의 b-features 프로젝트 :

package innerproject; 
public class B { 

    public B() { 
     this.msg = "Hello World"; 
    } 

    private String msg; 

    public String getMsg() { 
     return msg; 
    } 
    //... 
} 

오류 :

14:27:50: Executing external task 'build'... 
:compileJava NO-SOURCE :processResources NO-SOURCE :classes UP-TO-DATE 
:jar UP-TO-DATE :assemble UP-TO-DATE :compileTestJava NO-SOURCE 
:processTestResources NO-SOURCE :testClasses UP-TO-DATE :test 
NO-SOURCE :check UP-TO-DATE :build UP-TO-DATE :b-features:compileJava 
UP-TO-DATE :b-features:processResources NO-SOURCE :b-features:classes 
UP-TO-DATE :b-features:jar SKIPPED 
/home/nikita/IdeaProjects/multi-project-reference/a-features/src/main/java/outerproject/A.java:3: 
error: package innerproject does not exist import innerproject.B; 
       ^/home/nikita/IdeaProjects/multi-project-reference/a-features/src/main/java/outerproject/A.java:7: 
error: cannot find symbol 
     B b = new B(); 
     ^ symbol: class B location: class A /home/nikita/IdeaProjects/multi-project-reference/a-features/src/main/java/outerproject/A.java:7: 
error: cannot find symbol 
     B b = new B(); 
       ^ symbol: class B location: class A 3 errors :a-features:compileJava FAILED 

FAILURE: Build failed with an exception. 

답변

2

실제로 의존하는 것은 프로젝트에서 생성하는 이슈 (JAR 파일)입니다. 이슈 생성을 비활성화하면 (jar 작업) 필요한 수업을 더 이상 찾을 수 없습니다.