Hi everybody, Currently I am trying to build up an assembly for our project. I needed a filtered output so I came to the shade plugin. This is what I am doing:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.0</version>
<executions>
<execution>
<id>api</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<createSourcesJar>true</createSourcesJar>
<shadedClassifierName>api</
shadedClassifierName>
<shadedArtifactId>myArtifact</
shadedArtifactId>
<shadedArtifactAttached>true</
shadedArtifactAttached>
<archive>
<addMavenDescriptor />
<compress />
<forced />
<index />
<manifest>
<addClasspath />
<
addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addExtensions />
<classpathLayoutType />
<
classpathMavenRepositoryLayout />
<classpathPrefix />
<customClasspathLayout />
<mainClass />
<packageName />
</manifest>
<manifestEntries>
<!-- <key>value</key> -->
</manifestEntries>
<manifestFile />
<pomPropertiesFile />
</archive>
<artifactSet>
<includes>
<include>*:*</include>
</includes>
<excludes>
<exclude>de.my.company:
myDLL</exclude>
</excludes>
</artifactSet>
<filters>
<filter>
<artifact>*:*</artifact>
<includes>
<include>
de/my/company/package1/*</include>
<include>
de/my/company/package2/*</include>
<include>
de/my/company/package3/**</include>
<include>
de/my/company/package4/api/**</include>
</includes>
</filter>
</filters>
</configuration>
</execution>
<execution>
<id>full</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<createSourcesJar>true</createSourcesJar>
<shadedClassifierName>full</
shadedClassifierName>
<shadedArtifactId>myArtifact</
shadedArtifactId>
<shadedArtifactAttached>true</
shadedArtifactAttached>
<archive>
<addMavenDescriptor />
<compress />
<forced />
<index />
<manifest>
<addClasspath />
<
addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addExtensions />
<classpathLayoutType />
<
classpathMavenRepositoryLayout />
<classpathPrefix />
<customClasspathLayout />
<mainClass />
<packageName />
</manifest>
<manifestEntries>
<!-- <key>value</key> -->
</manifestEntries>
<manifestFile />
<pomPropertiesFile />
</archive>
<artifactSet>
<includes>
<include>*:*</include>
</includes>
<excludes>
<exclude>
de.my.company:excludedArtifact</exclude>
</excludes>
</artifactSet>
</configuration>
</execution>
</executions>
</plugin>
As you might have seen, I want to have 4 artifacts: api.jar,
api-sources.jar, full.jar, full-sources.jar.
As this is my assembly project, I would like to have all modules built,
before distributing. Therefore I inserted the modules. Now I need to have
packaging:pom (and not packaging:jar) in the pom.xml. The artifacts (api,
full + sources) are built correctly, but as pom instead of jar.
<outputFile> does not do the trick, cause I need sources and "normal" jar
separated.
Can I override the packaging in the shade plugin? Any other hints?
Mit freundlichen Gr??en / Best regards
Jan Engler
Central Research & Development
SICK AG
Erwin-Sick-Str. 1
79183 Waldkirch, Germany
Phone +49 7681 202-3214
mailto:[email protected]
http://www.sick.com
SICK AG - Sitz: Waldkirch i. Br. - Handelsregister: Freiburg i. Br. HRB
280355
Vorstand: Dr. Robert Bauer (Vorsitzender) - Reinhard B?sl - Dr. Martin
Kr?mer - Markus Paschmann - Markus Vatter
Aufsichtsrat: Gisela Sick (Ehrenvorsitzende) - Klaus M. Bukenberger
(Vorsitzender)
