我正在尝试使用烧烤条形码打印库。我通过project structure add library成功将库添加到IntelliJ。然后我导入了包并编写了方法,这没有给我任何错误。这些包在类中可用。
但是当我编译时,它会给我一个错误:
error: package net.sourceforge.barbecue does not exist
这怎么可能呢?
我在ubuntu中编码,还有其他地方需要添加库吗?
我正在尝试使用烧烤条形码打印库。我通过project structure add library成功将库添加到IntelliJ。然后我导入了包并编写了方法,这没有给我任何错误。这些包在类中可用。
但是当我编译时,它会给我一个错误:
error: package net.sourceforge.barbecue does not exist
这怎么可能呢?
我在ubuntu中编码,还有其他地方需要添加库吗?
当前回答
如果你不想破坏。idea,你可以尝试:
开放项目结构>模块 将Java文件夹取消标记为源文件夹 应用/重建 然后再次将其标记为源文件夹 重建
其他回答
以上方法都试过了,都没用。 最后运行maven清洁安装就解决了!
我尝试了所有的答案,但最终帮助我的是将Maven从捆绑到我自己的Maven发行版。
我认为反之亦然(从自己的改变到捆绑)也会有所帮助。
这是一个经常发生的非常烦人的问题。尤其是在切换到不同的git分支之后。它浪费了我太多的时间来排除这种问题。以上方法我都试过了。但我找不到可靠的方法。在这里,我总结了那些可能对我的情况有所帮助的步骤。Jetbrains,请修复此问题以节省客户的宝贵时间。
确保执行成功的命令行构建(如果UT失败,请使用-Dmaven.test.skip=true忽略UT)。 在“Maven Projects”视图中,尝试使用“重新导入”所有的Maven项目。 在文件菜单中,使用“无效缓存” 删除。idea文件夹,基本上从头开始创建工作区。(这是唯一可靠的解决方法)
这里有一个对我有效的解决方案: 禁用交叉编译的“Use -release”选项,如下所示: 得到设置->构建,执行,部署->编译器-> Java编译器和禁用:
使用'——release'选项进行交叉编译(java 9及更高版本)
在我的案例中,问题是IntelliJ和settings.xml文件中有不同的存储库目录配置。
检查两个存储库目录是否相同:
IntelliJ(文件>设置>构建,执行,部署>构建工具> Maven)
settings.xml (通常在c:\ users \myuser\。M2或/home/myuser/.m2)
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
...
<localRepository>C:\Users\myuser\.m2\repository</localRepository>
...
</settings>
修复目录后运行:
为所有项目生成文件夹和更新源
重新导入所有maven项目