2016-08-06 19 views
1

コンパイルエラーpackage sg.ncl.service.authentication.data.jpa does not existが発生してはいけないということで完全に馬鹿げています。Gradleマルチプロジェクトビルドコマンドは失敗しますが、サブプロジェクトでは正常に動作します

私は、Spring Boot 1.4.0に更新しようとしているGradleマルチプロジェクトを持っています。 レポジトリはhttps://github.com/nus-ncl/services-in-one/tree/DEV-483にあります。

更新:1: 私は、次のいずれかのコマンドを使用するたびに:

./gradlew clean build 
./gradlew clean assemble check 
./gradlew clean assemble test 

を彼らは、次のエラーが発生します。

D:\git\services-in-one\service-registration\src\test\java\sg\ncl\service\registration\logic\RegistrationServiceTest.java:16: error: package sg.ncl.service.authentication.data.jpa does not exist 
import sg.ncl.service.authentication.data.jpa.CredentialsEntity; 
             ^
D:\git\services-in-one\service-registration\src\test\java\sg\ncl\service\registration\Util.java:4: error: package sg.ncl.service.authentication.data.jpa does not exist 
import sg.ncl.service.authentication.data.jpa.CredentialsEntity; 
             ^
D:\git\services-in-one\service-registration\src\test\java\sg\ncl\service\registration\Util.java:120: error: cannot find symbol 
    public static CredentialsEntity getCredentialsEntity() { 
      ^
    symbol: class CredentialsEntity 
    location: class Util 
D:\git\services-in-one\service-registration\src\test\java\sg\ncl\service\registration\Util.java:127: error: cannot find symbol 
    public static CredentialsEntity getInvalidCredentialsEntity() { 
      ^
    symbol: class CredentialsEntity 
    location: class Util 
D:\git\services-in-one\service-registration\src\test\java\sg\ncl\service\registration\web\RegistrationControllerTest.java:22: error: package sg.ncl.service.authentication.data.jpa does not exist 
import sg.ncl.service.authentication.data.jpa.CredentialsEntity; 
             ^
5 errors 
:service-registration:compileTestJava FAILED 

ただし、次のコマンドを使用すると、コンパイルエラーは発生しません。

./gradlew clean :service-registration:build 
./gradlew clean :service-registration:compileTestJava 
./gradlew clean compileTestJava 
./gradlew clean check 

アップデート2:私は./gradlew :service-registration:build buildを使用している場合興味深いことに、エラーはありません。

私は簡単な例を考え出すことができず、不便をお詫びします。しかし、私はこの問題を解決する助けに感謝します。

答えて

4

起動1.4以降、実行可能なjarファイルは、コンパイルされたクラスをBOOT-INF/classesに格納します。つまり、jarをクラスパスに追加するだけではアクセスできません。モジュールを実行可能なjarファイルとしてパッケージングしており、それを依存関係として使用しようとしています。依存関係として使用すると、jarがクラスパスに追加されます。 jarが実行可能なアーカイブに再パッケージされている場合、そのクラスは表示されず、コンパイルに失敗します。

最も簡単な変更は、プロジェクトのjarファイルの再パッケージを無効にすることです:

bootRepackage { 
    enabled = false 
} 
+1

ありがとうございました。しかし、 'bootRepackage'を無効にする代わりに。サブプロジェクトに 'apply plugin: 'spring-boot''を削除しました。 – ChristopherZ

関連する問題