我正在尝试使用烧烤条形码打印库。我通过project structure add library成功将库添加到IntelliJ。然后我导入了包并编写了方法,这没有给我任何错误。这些包在类中可用。

但是当我编译时,它会给我一个错误:

error: package net.sourceforge.barbecue does not exist

这怎么可能呢?

我在ubuntu中编码,还有其他地方需要添加库吗?


当前回答

遵循以下步骤:

Ctrl+Shift -> Type Invalidate Caches ->检查所有选项,除了:Ask before… 高级菜单->构建->重建项目

其他回答

我的单元测试也遇到了同样的问题。我在我的主分支上创建了测试,在早期,无论我使用的是哪个分支,一切都运行良好。但是当我再次切换到主分支时,测试不再工作了。 帮助我的是:

关闭intellij ->从目录中删除。idea文件->再次通过pom.xml打开项目(idk如果它与你打开项目的方式有关,但第一次当我尝试通过intellij正常打开它时,它仍然不工作)->从右菜单重新加载所有maven项目->重建项目,就是这样,现在一切都工作了

以上方法都试过了,都没用。 最后运行maven清洁安装就解决了!

现有的13个答案中没有一个对我有用。然而,我可以通过首先删除所有模块来解决这个问题:

打开文件>项目结构… 进入模块选项卡, 选择所有模块,按下移除按钮,

然后从Maven工具窗口中删除所有剩余的Maven模块:

选择所有模块, 右键点击它们, 按删除项目,

然后在项目工具窗口中再次添加它们:

右键单击根目录pom.xml, 按添加为Maven项目,

现在取消Maven工具窗口中任何被忽略的模块:

选择所有被忽略的(灰色)Maven模块, 右键点击它们, 按Unignore,

最后使用Build >重建项目进行重建。这里假设已经进行了mvn清洁安装。

以上的解决方案对我不起作用。我必须显式地在pom.xml中添加依赖项。

只需将jar添加到resources/library下,然后将其作为依赖项添加到pom.xml中,如下所示:

        <dependency>
            <groupId>your-jar-group-id</groupId>
            <artifactId>artifact-id</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/library/name-of-jar.jar</systemPath>
        </dependency>

如果以上方法都不起作用,试试这个方法。

这里有一个对我有效的解决方案: 禁用交叉编译的“Use -release”选项,如下所示: 得到设置->构建,执行,部署->编译器-> Java编译器和禁用:

使用'——release'选项进行交叉编译(java 9及更高版本)