Java >> Java tutorial >  >> Tag >> maven

Hvordan laver man fjederbaseret eksekverbar krukke med maven?

Du kan tilføje følgende konfiguration, så indholdet af .schema-filerne fra alle krukkerne bliver tilføjet sammen.

<configuration>
  <transformers>
    <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
      <resource>META-INF/spring.handlers</resource>
    </transformer>
    <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
      <resource>META-INF/spring.schemas</resource>
    </transformer>
  </transformers>
</configuration>

Brug onejar-maven-plugin i stedet for maven-shade-plugin. One-JAR giver dig mulighed for at pakke et Java-program sammen med dets afhængighed Jars i en enkelt eksekverbar Jar-fil.


I går stødte jeg også på dette problem.

Løsningen var at forberede de nødvendige filer ved manuel sammenkædning og konfiguration af monteringsplugin ved denne:

  <files>
    <file>
        <source>src/META-INF/spring.schemas</source>
        <outputDirectory>META-INF</outputDirectory>
    </file>
    <file>
        <source>src/META-INF/spring.handlers</source>
        <outputDirectory>META-INF</outputDirectory>
    </file>
  </files>
  <dependencySets>
    <dependencySet>
      <outputDirectory>/</outputDirectory>
      <useProjectArtifact>true</useProjectArtifact>
      <unpack>true</unpack>
      <scope>runtime</scope>
      <unpackOptions>
        <excludes>
            <exclude>META-INF/spring.handlers</exclude>
            <exclude>META-INF/spring.schemas</exclude>
        </excludes>
      </unpackOptions>  
    </dependencySet>
  </dependencySets>

BEMÆRK:Det er ikke godt nok at bruge én jar-tilgang - du kan ikke være sikker på håndblandede filer, prøv at fortsætte med at eksportere alle afhængigheder, som de er...


Java tag