Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Netbeans: project's main artifact is processed through maven-shade-plugin

I am building my project with maven-shade-plugin and Netbeans 8.0 is complaining with the following warning:

Project's main artifact is processed through maven-shade-plugin

When the final artifact jar contains classes not originating in current project, NetBeans internal compiler cannot use the sources of the project for compilation. Then changes done in project's source code only appears in depending projects when project is recompiled. Also applies to features like Refactoring which will not be able to find usages in depending projects.

How can I fix this? What can it break?

like image 813
Anastasios Andronidis Avatar asked Jul 10 '14 23:07

Anastasios Andronidis


2 Answers

I found a "fix" by following the instructions over in Apache's Maven Docs

I added the following to my pom in the shade plugin section.

    <configuration>
      <shadedArtifactAttached>true</shadedArtifactAttached>
      <shadedClassifierName>launcher</shadedClassifierName> <!-- Can be any name that makes sense -->
    </configuration>

I now have 2 artifacts but it works for my needs.

like image 144
ericski Avatar answered Nov 17 '22 05:11

ericski


typically it's a problem in projects depending on this one.

While the jar file in local repo contains classes from it's own dependencies, the src/main/java folder doesn't contain them. That confuses the java engine when it attempts to re-compile the changes done locally in the editor.

there is no way to "fix" it. it's been placed there after repeated bugs were filed against the editor showing compile errors where there were none. I think there is an issue filed for letting the user have the warning disappear.

like image 6
mkleint Avatar answered Nov 17 '22 04:11

mkleint