【问题标题】:Netbeans: project's main artifact is processed through maven-shade-pluginNetbeans:项目主神器通过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 警告还是一样的。我也这样做了:stackoverflow.com/a/9806400/1067688。仍然只是我发布的内容:/

标签: java maven netbeans maven-shade-plugin


【解决方案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 引擎感到困惑。

没有办法“修复”它。在针对编辑器提交了重复的错误后,它被放置在那里,显示没有编译错误。我认为让用户让警告消失存在问题。

【讨论】:

    猜你喜欢
    • 2014-09-05
    • 2013-04-11
    • 2019-12-02
    • 1970-01-01
    • 2017-04-11
    • 2019-03-04
    • 2014-01-07
    • 2013-08-19
    相关资源
    最近更新 更多