I want to make executable jar file using apache shade plugin. The project is a webapp with a bunch of jsp s. We are using embedded jetty with jasper jsp engine. Some jstl tag are used in these jsp's. So I need to properly pack all the tld files in my resulting jar. Now we are using a custom transformer for maven shade plugin to place all tld files into WEB-INF/META-INF root directory. I wonder if there is a way of doing it without using a custom transformer. Can it be done with standard shade transformers?
UPD. Jetty, apache-jsp, apache-jstl libs version 9.2.13.v20150730
maven shade config :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<dependencies>
<dependency>
<groupId>com.company</groupId>
<artifactId>shade-resource-transformers</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>shade</shadedClassifierName>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<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>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.company.application.Server</mainClass>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<transformer
implementation="com.company.build.maven.shade.transformer.TldResourceTransformer">
<tldDestFolder>WebRoot/WEB-INF/META-INF/</tldDestFolder>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
As you can see we use custom tranformer here.
Enabling jsp support:
Configuration.ClassList classlist = Configuration.ClassList
.setServerDefault(server);
classlist.addBefore(
"org.eclipse.jetty.webapp.JettyWebXmlConfiguration",
"org.eclipse.jetty.annotations.AnnotationConfiguration");