Netbeans:项目主神器通过maven-shade-plugin处理
Posted
技术标签:
【中文标题】Netbeans:项目主神器通过maven-shade-plugin处理【英文标题】:Netbeans: project's main artifact is processed through maven-shade-plugin 【发布时间】:2014-09-01 11:53:37 【问题描述】:我正在使用 maven-shade-plugin
构建我的项目,而 Netbeans 8.0 抱怨以下警告:
项目的主神器通过maven-shade-plugin处理
当最终的工件 jar 包含不源自当前项目的类时,NetBeans 内部编译器无法使用项目的源代码进行编译。然后,在重新编译项目时,项目源代码中所做的更改仅出现在依赖项目中。也适用于在依赖项目中找不到用途的重构等功能。
我该如何解决这个问题?它能破坏什么?
【问题讨论】:
你能用-X -e
运行它并发布带有确切错误消息的堆栈跟踪
@JigarJoshi 嗨,我不知道在哪里添加这些参数:/ 此消息来自 NetBeans 本身,而不是来自我正在运行的构建命令
来自here,请参阅将 Maven 目标绑定到 IDE 操作
@JigarJoshi 警告还是一样的。我也这样做了:***.com/a/9806400/1067688。仍然只是我发布的内容:/
【参考方案1】:
我按照Apache's Maven Docs 中的说明找到了“修复”
我在阴影插件部分的 pom 中添加了以下内容。
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>launcher</shadedClassifierName> <!-- Can be any name that makes sense -->
</configuration>
我现在有 2 个工件,但它可以满足我的需要。
【讨论】:
这是让它消失的答案吗? 这个“修复”警告消失了。 实际上,我认为第一个元素shadedArtifactAttached
是必需的。后者只是一个可选元素,因为它完全不影响任何东西,而 netbeans 警告也会在有或没有元素 shadedClassifierName
的情况下消失。【参考方案2】:
通常这是一个依赖于这个的项目中的问题。
虽然本地 repo 中的 jar 文件包含来自其自身依赖项的类,但 src/main/java 文件夹不包含它们。当 Java 引擎尝试重新编译在编辑器中本地完成的更改时,这会使 Java 引擎感到困惑。
没有办法“修复”它。在针对编辑器提交了重复的错误后,它被放置在那里,显示没有编译错误。我认为让用户让警告消失存在问题。
【讨论】:
以上是关于Netbeans:项目主神器通过maven-shade-plugin处理的主要内容,如果未能解决你的问题,请参考以下文章
将Java小程序项目导入netbeans不起作用,Netbeans即使手动设置也拒绝识别甚至找不到主类