# Maven Multi-Module Projekt



## Cury (9. Mai 2021)

Hallo,
Ich habe ein Projekt, welches aus mehreren Modulen besteht. Ein api modul, welches Interfaces beinhaltet und ein Plugin, welches die Methoden der Interfaces überschreibt und selber noch Funktionen und eingene Methoden/Klassen beinhaltet.

So sieht das ganze ungefähr aus:
Projekt:
   API,
   Plugin

Ich möchte jetzt das package, in dem die Interfaces liegen aus der API in das Plugin shaden. Weiß aber nicht wie. Ich habe es mit einem shade Plugin in der pom aus dem API versucht. Hatte aber nicht funktioniert. Also das package mit den Interfaces wurde nicht in das Plugin geshaded

[CODE lang="xml" title="Shade Plugin"]<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <executions>
                    <execution>
                        <id>shade</id>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <relocations>
                                <relocation>
                                    <pattern>net.lyrotopia.languageprovider</pattern>
                                    <shadedPattern>net.lyrotopia</shadedPattern>
                                </relocation>
                            </relocations>
                        </configuration>
                    </execution>
                </executions>
            </plugin>[/CODE]

So sieht meine Projekt Struktur aus:

Das package net.lyrotopia.languageprovider aus dem LanguageProvider möchte ich in das LangaugeSystem in das net.lyrotopia package shaden.

MfG


----------



## mihe7 (9. Mai 2021)

Cury hat gesagt.:


> Ich habe es mit einem shade Plugin in der pom aus dem API versucht. Hatte aber nicht funktioniert.


Du musst das Shade-Plugin dort anwenden, wo das Uber-Jar entstehen soll. In diesem Projekt werden dann die Abhängigkeiten mitgepackt. 

Sprich: wenn Du eine Abhängigkeit Plugin -> API hast, musst Du das Shade-Plugin im Plugin-Modul anwenden. 

Alternativ: erzeuge ein weiteres Modul, das Abhängigkeiten zu API und Plugin besitzt und verwende dort das Shade-Plugin. Dann hast Du Plugin und API weiterhin ungeshaded.


----------



## Cury (10. Mai 2021)

Danke. Ich habe gestern noch einiges ausprobiert und gegoogelt und habe dann auch was nützliches gefunden.


----------

