Jak stworzyć oparty na wiosennym pliku wykonywalnym słoik z mavenem?

Mam projekt klienta Spring-WS oparty na Maven, który chcę spakować jako pojedynczy słoik. W zaćmieniu wszystko działa prawidłowo. Gdy próbuję spakować go jako wykonywalny jar, otrzymuję wyjątki ClassNotFound, ponieważ słoiki Spring nie są zawarte w moim słoiku aplikacji.

Dodałem więcwtyczka maven-shade uwzględnić wszystkie moje zależności w słoiku aplikacji. Kiedy patrzę na mój słoik aplikacji, widzę wszystkie pliki klas ze wszystkich zależności (wszystkie słoiki biblioteki są eksplodowane).

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>com.cws.cs.Client</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>1.7</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>

        </plugin>
    </plugins>
</build>

Moim problemem jest to, że w procesie pakowania moje wielokrotne zależności wiosenne różnią sięMETA-INF / spring.schemas pliki, które wzajemnie się zastępują. W konsekwencji mój ostatni słoik ma niekompletny plik spring.schemas.

Kiedy próbuję uruchomić mój wykonywalny jar, otrzymuję komunikaty o błędach Spring, których nie można znaleźć, ponieważ plik spring.schemas jest niekompletny (jar Spring-WS przesłonił plik spring.schemas Spring-core).

Mój plik wykonywalny jar META-INF / spring.schemas:

http\://www.springframework.org/schema/web-services/web-services-1.5.xsd=/org/springframework/ws/config/web-services-1.5.xsd
http\://www.springframework.org/schema/web-services/web-services-2.0.xsd=/org/springframework/ws/config/web-services-2.0.xsd
http\://www.springframework.org/schema/web-services/web-services.xsd=/org/springframework/ws/config/web-services-2.0.xsd

Zamiast Spring-beans.jar META-INF / spring.schemas:

http\://www.springframework.org/schema/beans/spring-beans-2.0.xsd=org/springframework/beans/factory/xml/spring-beans-2.0.xsd
http\://www.springframework.org/schema/beans/spring-beans-2.5.xsd=org/springframework/beans/factory/xml/spring-beans-2.5.xsd
http\://www.springframework.org/schema/beans/spring-beans-3.0.xsd=org/springframework/beans/factory/xml/spring-beans-3.0.xsd
http\://www.springframework.org/schema/beans/spring-beans-3.1.xsd=org/springframework/beans/factory/xml/spring-beans-3.1.xsd
http\://www.springframework.org/schema/beans/spring-beans.xsd=org/springframework/beans/factory/xml/spring-beans-3.1.xsd
http\://www.springframework.org/schema/tool/spring-tool-2.0.xsd=org/springframework/beans/factory/xml/spring-tool-2.0.xsd
http\://www.springframework.org/schema/tool/spring-tool-2.5.xsd=org/springframework/beans/factory/xml/spring-tool-2.5.xsd
http\://www.springframework.org/schema/tool/spring-tool-3.0.xsd=org/springframework/beans/factory/xml/spring-tool-3.0.xsd
http\://www.springframework.org/schema/tool/spring-tool-3.1.xsd=org/springframework/beans/factory/xml/spring-tool-3.1.xsd
http\://www.springframework.org/schema/tool/spring-tool.xsd=org/springframework/beans/factory/xml/spring-tool-3.1.xsd
http\://www.springframework.org/schema/util/spring-util-2.0.xsd=org/springframework/beans/factory/xml/spring-util-2.0.xsd
http\://www.springframework.org/schema/util/spring-util-2.5.xsd=org/springframework/beans/factory/xml/spring-util-2.5.xsd
http\://www.springframework.org/schema/util/spring-util-3.0.xsd=org/springframework/beans/factory/xml/spring-util-3.0.xsd
http\://www.springframework.org/schema/util/spring-util-3.1.xsd=org/springframework/beans/factory/xml/spring-util-3.1.xsd
http\://www.springframework.org/schema/util/spring-util.xsd=org/springframework/beans/factory/xml/spring-util-3.1.xsd

Jestem zakłopotany. Nie jestem pewien, czy / jak mogę spakować wszystko jako pojedynczy plik wykonywalny. Nie wiem, czy jest to problem z konfiguracją wtyczki w cieniu, czy też próbuję zrobić coś niemożliwego. Nie wydaje się poprawne, że musiałbym ręcznie utworzyć własny plik spring.schemas (konkatenacja innych).

Mogłem trochę skoczyć z pistoletu. Przy wykopywaniu dodatkowych informacji o wtyczce odcienia zauważyłemAppendingTransformer że wcześniej tęskniłem. Jednak moim problemem jest to, jak wiedzieć, które inne pliki mają te same problemy? Odkryłem / złapałem ten konkretny problem Spring. Nie mam pojęcia o innych bibliotekach, które mogą robić coś podobnego ...

Wszelkie sugestie będą mile widziane.

questionAnswers(5)

yourAnswerToTheQuestion