That's all I need. Additional details: I have a src/bootstrap/java folder and the regular src/main/java folder. Each one needs to go to a separate jar for obvious reasons. I was able to generate a bootstrap jar using this:
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>only-bootstrap</id>
<goals><goal>jar</goal></goals>
<phase>package</phase>
<configuration>
<classifier>bootstrap</classifier>
<includes>
<include>sun/**/*</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
But the regular jar still includes the bootstrap classes. I am compiling the bootstrap classes with this answer.
Any light to generate a myproject.jar WITHOUT the bootstrap classes?
xml file to exclude property files. You need to specify the directory where the files are reside in your application structure. Also you need to specify the file types to be excluded using exclude tag. Below code excludes any file name ending with .
How to include/exclude content from jar artifact. Specify a list of fileset patterns to be included or excluded by adding <includes> / <include> or <excludes> / <exclude> in your pom. xml . Note that the patterns need to be relative to the path specified for the plugin's classesDirectory parameter.
Since Maven resolves dependencies transitively, it is possible for unwanted dependencies to be included in your project's classpath. For example, a certain older jar may have security issues or be incompatible with the Java version you're using. To address this, Maven allows you to exclude specific dependencies.
I think you can take a look at this before deciding to generate two jars from one pom.
Maven best practice for generating multiple jars with different/filtered classes?
If you still decide to get two jars, you can probably do it using this. You have to specify the proper exclusions.
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>only-bootstrap</id>
<goals><goal>jar</goal></goals>
<phase>package</phase>
<configuration>
<classifier>only-library</classifier>
<includes>
<include>**/*</include>
</includes>
<excludes>
<exclude>**/main*</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>only-main</id>
<goals><goal>jar</goal></goals>
<phase>package</phase>
<configuration>
<classifier>everything</classifier>
<includes>
<include>**/*</include>
</includes>
<excludes>
<exclude>**/bootstrap*</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
You gotta use "default-jar" for the ID:
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>only-bootstrap</id>
<goals><goal>jar</goal></goals>
<phase>package</phase>
<configuration>
<classifier>bootstrap</classifier>
<includes>
<include>sun/**/*</include>
</includes>
</configuration>
</execution>
<execution>
<id>default-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<excludes>
<exclude>sun/**/*</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With