首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分级多项目生成命令失败,但对子项目正确工作。

分级多项目生成命令失败,但对子项目正确工作。
EN

Stack Overflow用户
提问于 2016-08-06 02:03:12
回答 1查看 871关注 0票数 1

我被一个不应该发生的编译错误package sg.ncl.service.authentication.data.jpa does not exist完全吓呆了。

我有一个分级多项目,我试图更新到SpringBoot1.4.0。存储库位于https://github.com/nus-ncl/services-in-one/tree/DEV-483

更新: 1:每当我使用以下命令之一时:

代码语言:javascript
复制
./gradlew clean build
./gradlew clean assemble check
./gradlew clean assemble test

它们将导致以下错误。

代码语言:javascript
复制
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

但是,当我使用以下任何命令时,不会发生编译错误。

代码语言:javascript
复制
./gradlew clean :service-registration:build
./gradlew clean :service-registration:compileTestJava
./gradlew clean compileTestJava
./gradlew clean check

更新2:有趣的是,如果我使用./gradlew :service-registration:build build,就不会出现错误。

我意识到,我无法提出一个简化的例子,并为不便道歉。不过,我希望能在这个问题上得到任何帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-06 06:13:20

从引导1.4开始,可执行jar文件在BOOT-INF/classes中存储已编译的类。这意味着当简单地将jar添加到类路径时,它们是不可访问的。您正在将模块打包为可执行的jar文件,并尝试将其用作依赖项。当您将其用作依赖项时,它的jar将被添加到类路径中。如果jar被重新打包到可执行存档中,那么它的类是不可见的,编译失败就会发生。

最简单的更改是禁用项目jar的重新打包:

代码语言:javascript
复制
bootRepackage {
    enabled = false
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38799919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档