Witam
Do budowania swojego wynikowego jara używam maven-assembly-plugin.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/assemble/jar.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>tu moja klasa main</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
I mój jar.xml :
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<unpack>true</unpack>
<scope>compile</scope>
</dependencySet>
</dependencySets>
</assembly>
Przeważnie wszystko się buduje ok ale czasami z niewiadomych powodów dostaje :
Trace
java.lang.StackOverflowError
at sun.nio.cs.SingleByteEncoder.encodeArrayLoop(SingleByteEncoder.java:91)
at sun.nio.cs.SingleByteEncoder.encodeLoop(SingleByteEncoder.java:130)
at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:544)
at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:252)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:106)
at java.io.OutputStreamWriter.write(OutputStreamWriter.java:190)
at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:111)
at java.io.PrintStream.newLine(PrintStream.java:495)
at java.io.PrintStream.println(PrintStream.java:757)
at org.codehaus.plexus.logging.console.ConsoleLogger.info(ConsoleLogger.java:41)
at org.codehaus.plexus.logging.AbstractLogger.info(AbstractLogger.java:56)
at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:464)
Dzieje się tak wtedy gdy podczas budowania jara dodawane są klasy z zależności i leci ciąg np.
org/apache/commons/configuration/resolver/EntityRegistry.class already added, skipping
org/apache/commons/configuration/resolver/EntityResolverSupport.class already added, skipping
org/apache/commons/configuration/StrictConfigurationComparator.class already added, skipping
org/apache/commons/configuration/SubnodeConfiguration.class already added, skipping
.
.
.
i w którymś momencie wywala - czasami nie wywala i buduje się do końca a czasami w losowym momencie wywala. Jakieś pomysły? Jak zobić by klasy które wcześniej dodał nie starał się dodawać ponownie?
Pozdrawiam