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即使手动设置也拒绝识别甚至找不到主类

在netbeans的项目中编译单个文件

如何在 Netbeans 中创建 Java 项目,而不使用 Maven 作为默认值?

在 phpmyadmin 中恢复本地主机主页

分析Gradle项目

Netbeans/java:找不到或加载主类库