chrisdchristo / capsule-maven-plugin Goto Github PK
View Code? Open in Web Editor NEWCapsule Maven Plugin
License: MIT License
Capsule Maven Plugin
License: MIT License
In many scenarios, a multi-module maven build will be deployed as a unit (ex. SNAPSHOT builds that share a common version), but are decomposed for "static modularity". In some cases, these artifacts may need special packing themselves (e.g. shade class relocation). For this reason, it would be extremely useful to add the ability to add their primary artifact to the contents of the thin jar.
In contrast to capsule-maven 0.10.3 a Maven project still using Java 7 fails with a message during the build that the class version is unsupported. 52.0 ist Java 8, so probably from 0.10.3 to 0.10.4 the compiler level was changed. This issue should be reproducible with a real JDK 7 installation by just flipping the versions between 0.10.3 and 0.10.4.
It would be great to have Java 7 still supported for a build.
In a submodule project the config is
<plugin>
<groupId>com.github.chrischristo</groupId>
<artifactId>capsule-maven-plugin</artifactId>
<version>0.10.4</version>
<executions>
<execution>
<goals>
<goal>build</goal>
</goals>
<configuration>
<types>fat</types>
<appClass>my.MainClass</appClass>
</configuration>
</execution>
</executions>
</plugin>
Tried to follow the suggestion to use Capsule 1.0-rc1. Compare: puniverse/capsule-maven#7
However there is no newer version of the maven plugin itself. According to the documentation https://github.com/chrischristo/capsule-maven-plugin (customer capsule version) this would require to set a Maven property for it to use a different Capsule.
But neither:
<plugin>
<groupId>com.github.chrischristo</groupId>
<artifactId>capsule-maven-plugin</artifactId>
<version>0.10.4</version>
<executions>
<execution>
<goals>
<goal>build</goal>
</goals>
<configuration>
<properties>
<capsule.version>1.0-rc1</capsule.version>
</properties>
<types>fat</types>
<appClass>my.MainClass</appClass>
</configuration>
</execution>
</executions>
</plugin>
nor
<!-- top-level properties -->
<properties>
<capsule.version>1.0-rc1</capsule.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.github.chrischristo</groupId>
<artifactId>capsule-maven-plugin</artifactId>
<version>0.10.4</version>
<executions>
<execution>
<goals>
<goal>build</goal>
</goals>
<configuration>
<types>fat</types>
<appClass>my.MainClass</appClass>
</configuration>
</execution>
</executions>
</plugin>
is effective and still results in 0.10.4 (in contrast to 0.10.3) in:
INFO] --- capsule-maven-plugin:0.10.4:build (default) @ MyMavenSubModule ---
[WARNING] Error injecting: capsule.CapsuleMojo
java.lang.TypeNotPresentException: Type capsule.CapsuleMojo not present
at org.eclipse.sisu.space.URLClassSpace.loadClass(URLClassSpace.java:115)
at org.eclipse.sisu.space.NamedClass.load(NamedClass.java:46)
at org.eclipse.sisu.space.AbstractDeferredClass.get(AbstractDeferredClass.java:48)
at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:55)
at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100)
at org.eclipse.sisu.plexus.PlexusLifecycleManager.onProvision(PlexusLifecycleManager.java:133)
...
Caused by: java.lang.UnsupportedClassVersionError: capsule/CapsuleMojo : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
...
... 41 more
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
It looks like MavenCaplet
(with its JAR content) is not being included. Tried with 0.10.7-SNAPSHOT
installed locally. Sample project: https://github.com/circlespainter/capsule-1.0-sample
I've got a large project that depends on hive-exec via "provides", because the environment already has it.
<manifest>
<entry>
<key>Dependencies</key>
<value>org.apache.hive:hive-exec:${hive.version}</value>
</entry>
</manifest>
I unpack all of the typical dependencies and build the project:
mvn -DoutputDirectory=target/classes/ dependency:unpack-dependencies
mvn compile
rm target/classes/META-INF/MANIFEST.MF
This gets me a big chunk of unpacked project, much as maven-assembly-plugin will do.
Now: mvn capsule:build
java.io.FileNotFoundException... Too many open files in system.
...
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at capsule.CapsuleMojo$1.visitFile(CapsuleMojo.java:236)
at capsule.CapsuleMojo$1.visitFile(CapsuleMojo.java:232)
at java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:135)
at java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:199)
at java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:199)
at java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:199)
at java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:199)
at java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:69)
at java.nio.file.Files.walkFileTree(Files.java:2600)
at java.nio.file.Files.walkFileTree(Files.java:2633)
at capsule.CapsuleMojo.buildThin(CapsuleMojo.java:232)
Hi,
Adding the capsule jar as dependency in the pom of the plugin would allow the maven dependency module to resolve it, which is particularly useful when doing mvn dependency:go-offline
from projects that use capsule-maven-module
. Nowadays a typical use-case for pre-fetching dependencies before compiling is when building docker images, because they get cached and the process becomes much more efficient. But even the normal use-case of being able to build the project offline is nice.
There must be a good reason why you don't do it that way, but I can't find it?
Cheers
It was requested to look at Capsule to package Hammock based apps. I decided to try out the maven plugin which can be seen here: https://github.com/hammock-project/microprofile-samples/tree/capsule
The problem is that the default distribution is 10 mb (shaded JAR). The Capsule equivalent is 98 mb. That seems a bit off to me. Any idea what I might be doing wrong?
DependencySet has property unpack to determine if dependency should be unpacked or not. Could you implement this feature?
Please also implement wildchars for include tag, so multiple files can be added at once.
When include is not specified whole dependency should go into jar.
I think include should work on packed and unpacked file.
Reference https://maven.apache.org/plugins/maven-assembly-plugin/assembly.html#class_dependencySet
It seems that in order to use the plugin, you have to issue:
mvn *package* capsule:build
and not just
mvn capsule:build
otherwise all the dependent JARs for the app are not found and thus fat-jar creation fails. Binding to the package phase makes a ton of sense, so why not just bind to the package phase automatically in the plugin, and remove the docs about mvn capsule:build, since that doesn't work for most folks out of the gate? Also, automatic binding would obviate the need to add the manual binding step (thus further lowering barrier to entry and making capsule even easier to use)
In the future capsule
and capsule-maven
could be released separately as they are now two different projects, so users may want to specify different versions for them.
I have some problem while start Push-Server-0.12.0-capsule-fat.jar and I newbie in this project.
This project with https://github.com/WhisperSystems/PushServer and based on capsule-maven-plugin .
It' s next message:
CAPSULE: Waiting for client to connect...
Failed to find Premain-Class manifest attribute in G:\PushServer\Push-Server-0.12.0-capsule-fat.jar
Error occurred during initialization of VM
agent library failed to init: instrument
CAPSULE: Client connection failed.
CAPSULE EXCEPTION: Accept timed out while processing null null: null
java.net.SocketTimeoutException: Accept timed out
at java.net.DualStackPlainSocketImpl.waitForNewConnection(Native Method)
at java.net.DualStackPlainSocketImpl.socketAccept(Unknown Source)
at java.net.AbstractPlainSocketImpl.accept(Unknown Source)
at java.net.PlainSocketImpl.accept(Unknown Source)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at Capsule.startServer(Capsule.java:1717)
at Capsule.launch0(Capsule.java:1378)
at Capsule.launch(Capsule.java:1351)
at Capsule.launch(Capsule.java:1280)
at Capsule.main0(Capsule.java:399)
at Capsule.main(Capsule.java:379)
CAPSULE: Closing comm
CAPSULE: Cleanup
Firstly I need to know why
...
Failed to find Premain-Class manifest attribute in G:\PushServer\Push-Server-0.12.0-capsule-fat.jar
Error occurred during initialization of VM
agent library failed to init: instrument
...
it happened?
Any idea?
Thanks
Type: Feature request
What:
To be able to configure the complete capsule name, not just the prefix defined by the customDescriptor <finalName><customDescriptor>.jar
.
How:
I suggest adding a <finalName>
attribute that permit users of the plugin to specify the complete name,
Why:
We want to preserve the original artifact naming, e.g., foo-1.7-SNAPSHOT-buildnum.jar
to upload to artifact server. We walso want to assemble the capsule separately as foo.jar
to easily deploy and re-deploy it.
Rationale:
The plugin creates a separate artifact next to the one default created during the package
phase. As two separate artifacts they can have separate purpose and consequently the name is no longer guaranteed to be shared between the two.
Add “Premain-Class: Capsule” to the manifest
Feel free to close this issue if you think this behavior should be correct, but I felt I should raise it to see what you thought:
About a week ago we were struck at work with a weird issue where our Jenkins CI (which emits Capsule'd jars) started generating Capsules that no longer functioned, complaining about:
Error occurred during initialization of VM
agent library failed to init: instrument
Failed to find Premain-Class manifest attribute in ...
This really weirded us out because nothing had changed as far as we were aware; the libraries were the same, Jenkins was the same, and it wasn't the code at fault because if we built old versions of our software with Jenkins, it would still produce the error.
After a fair few rabbit holes I eventually realised that the new version of Capsule, which was being automatically pulled by the maven plugin, had started using the Java Instrumentation package, and the manifest now required "Premain-Class" to be set in the manifest in order to work properly. After modifying the pom, this resolved the issue. The whole thing took about a day and a half to diagnose.
edit:
I just noticed the "Now adds Premain-Class: Capsule to manifest by default." in version 0.10.7, we tried 0.10.8 to resolve this in our testing, but this did not work properly either, but I'm more interested in whether the idea of having the capsule version always the latest (unless you specify otherwise) as default is valid, considering breaking changes like this might happen in the future.
"As noted in the google group I had a need to include a large number of files related to native executables run by a capsule application. I've gotten around that difficulty for now by manually generating/scripting the individual stanzas for the pom. A far better solution would be if the plugin's stanzas accepted Maven wildcard syntax: dir/*/. I spent a bit of time today trying to figure out how other Maven plugins implement this so I could submit a PR but I got lost in a maze of twisty little Maven passages."
Codehaus has closed it's doors.
I'm using version 0.10.8 of the pluging. I'm trying to set up JMX inside a capsule, so I'm trying to make a capsule that replicates this command line:
java -jar my.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1098 [...]
Note that first argument, Dcom.sun.management.jmxremote
. That's not being handled gracefully by the plugin right now. First thing I tried is this:
<configuration>
<appClass>my.app.Main</appClass>
<types>fat</types>
<properties>
<property>
<key>com.sun.management.jmxremote</key>
</property>
<property>
<key>com.sun.management.jmxremote.ssl</key>
<value>false</value>
</property>
<property>
<key>com.sun.management.jmxremote.authenticate</key>
<value>false</value>
</property>
<property>
<key>com.sun.management.jmxremote.port</key>
<value>1098</value>
</property>
</properties>
</configuration>
But that produces the following in the manifest, skipping the empty property completely:
System-Properties: com.sun.management.jmxremote.ssl=false com.sun.management.jmxremote.authenticate=false com.sun.management.jmxremote.port=1098
And if I try this:
<property>
<key>com.sun.management.jmxremote</key>
<value></value>
</property>
...that produces the following:
System-Properties: com.sun.management.jmxremote=java.lang.Object@7b78ce2d com.sun.management.jmxremote.ssl=false com.sun.management.jmxremote.authenticate=false com.sun.management.jmxremote.port=1098
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by Capsule (file:/Users/vertex/WorkingCopies/jAPlus/AMon/target/AMon-1.0-SNAPSHOT-fat.jar) to field com.sun.jmx.mbeanserver.JmxMBeanServer.mbsInterceptor
WARNING: Please consider reporting this to the maintainers of Capsule
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
I'm finding it hard to configure the building of the capsule to support the following:
Compiling on Mac, with a package that needs JNI support and deploying to a Raspberry Pi.
I can't figure out how to:
The only tweak that's helped is to sent the environment variable on the Raspberry Pi. But that defeats part of the purpose of building the capsule.
I don't currently have a fix for #1. I've taken the output from the verbose output and tweaked it to to see how to change it to make it work (so I can try to reproduce it).
The code to generate the Dependencies string has a minor bug and produces incorrect format when multiple exclusions are found for a dependency.
I came across the following issue when trying to build a new capsule project:
puniverse/capsule#55
This came up because my project (using capsule-maven-plugin v0.10.0) was resolving the latest capsule version (which happened to be 1.0-rc1-SNAPSHOT and contained the bug above).
Ideally, capsule-maven-plugin would ignore '*-SNAPSHOT' capsule versions when resolving the 'latest' capsule version.
I've been able to work around this issue by explicitly setting capsule.version:
<capsule.version>0.10.0</capsule.version>
I have a multi-module reactor build. It would be quite handy to generate a single thinjar of all dependent modules rather than depending on each module's discrete artifact.
Something like...
Where app
is the main module, has the capsule build definition, and depends on app-models
and app-other
.
Is it possible to bundle the generated output of app-models
and app-other
into the app
capsule?
I have read the requirement maven 3.1.+ but the code looks like 3.0.X would be ok...but the pom states the dependency to maven-project uses 3.0-alpha-2, maven-plugin-api uses 3.2.2..the question is why not using consistently version 3.0 ? Any special reason for this?
If you like to force using a particular maven version this should be done by using maven-enforcer-pugin?
Hi, I couldn't add a new issue on the official repository so I try here instead :)
I noticed that with a very basic configuration of the plugin (without any specific caplet), there was a Manifest attributes Repositories added that contained my local settings.xml repositories settings.
Repositories: repo-snapshots(http://localhost:8081/nexus/content/groups/public-snapshots/) repo(http://localhost:8081/nexus/content/groups/public/)
I don't think it make sense to include that information, because:
From the exec:java
plugin Java Goal usage page, arguments
are supposed to be mapped to application arguments and not JVM arguments as in the current implementation.
I'm raising this issue because by doing this way, if I use mvn exec:java
to run my application it runs fine but when I want to run the application through the final capsule jar, it gives me an error caused by arguments
which have been mapped to JVM-args
being specified first in the command line before the appClass
making java think the first argument
is the class name.
TLDR:
From exec
configuration I expect the final capsule command to be: java <systemProperties/> <mainClass/> <arguments/>
but the mapping or arguments
to JVM-args
causes the command to be java <arguments/> <systemProperties/> <mainClass/>
causing program exec failure.
EDIT
I believe exec arguments
should be mapped to the Args
manifest attribute.
Capsule actually builds special "really executable capsules" but the plugin just prints the single-process command line (as documented). Shouldn't it work like Capsule?
Sample project: https://github.com/circlespainter/capsule-1.0-sample
I use a maven docker plugin that has the same setup as the maven-assembly-plugin.
Ultimately, I'd like to get my capsule JAR assembled into the docker image.
If I have an assembly.xml
with
<dependencySets>
<dependencySet>
<outputDirectory>${app.dir}/lib</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<useTransitiveDependencies>true</useTransitiveDependencies>
<unpack>false</unpack>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
The capsule-jar is not included
Hi, I am using maven to build a small program depending on org.lwjgl.lwjgl:lwjgl:2.9.1
.
Up to now, I have been using maven-nativedependencies-plugin
to unpack the native libraries provided by lwjgl
, and have been able to run my code sucessfully using -Djava.library.path=target/natives
, as suggested here.
I would now like to build a fat capsule, which would enable me to run my program without specifying -Djava.library.path
on the command line. What should I do for this purpose?
For now:
lwjgl-platform-2.9.1-natives-windows.jar
as an example, which contains lwjgl.dll
).UnsatisfiedLinkError: no lwjgl in java.library.path
when running the jar.Here is the relevant POM fragment:
<plugin>
<groupId>com.github.chrischristo</groupId>
<artifactId>capsule-maven-plugin</artifactId>
<version>0.10.0</version>
<executions>
<execution>
<goals>
<goal>build</goal>
</goals>
<configuration>
<appClass>org.lwjgl.examples.spaceinvaders.Game</appClass>
<types>fat</types>
</configuration>
</execution>
</executions>
</plugin>
Seems like the generated file name of the capsule is incorrect. Instead of <finalName>-<descriptorName>.jar
, the result is <finalName><finalName>-<descriptorName>.jar
.
When following the documentation https://github.com/chrischristo/capsule-maven-plugin to include the plugin during builds the plugin creates e.g. the capsule-fat.jar into the target folder as expected. However the e.g. capsule-fat.jar artifact will not be installed to the local .m2 maven repo with mvn install nor will it be uploaded to e.g. Nexus during mvn deploy.
Other plugins like maven-assembly seem to register their e.g. jar-with-dependencies.jar artifact automatically. For capsule one can make things work when adding the following to the pom.xml:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${project.build.directory}/${project.artifactId}-${project.version}-capsule-fat.jar</file>
<type>jar</type>
<classifier>capsule-fat</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
It would be great to either have the artifacts registered automatically thru the capsule plugin or add this snippet to the documentation to relief other users from searching stackoverflow.
I see the <caplets>
tag but it's unclear how to specify capsule-daemon
, for example. Do I add that as a compile dependency to my app?
Hey!
I'm trying to get my project (which builds fine locally) running on jenkins, and I get this problem:
[WARNING] Error injecting: com.github.christokios.CapsuleMojo
com.google.inject.ProvisionException: Guice provision errors:
1) No implementation for org.eclipse.aether.RepositorySystem was bound.
while locating com.github.christokios.CapsuleMojo
The build uses jenkins 3.0.4. Locally I run 3.1.1.
Here is a larger part of the log:
INFO] --- maven-surefire-plugin:2.10:test (default-test) @ webservice ---
[INFO] No tests to run.
[INFO] Surefire report directory: /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[JENKINS] Recording test results
[INFO]
[INFO] --- maven-jar-plugin:2.3.2:jar (default-jar) @ webservice ---
[INFO] Building jar: /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/webservice-0.4.58.jar
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (enforce-banned-dependencies) @ webservice ---
[WARNING] Failed to getClass for org.apache.maven.plugin.source.SourceJarMojo
[INFO]
[INFO] --- maven-source-plugin:2.2.1:jar (attach-sources) @ webservice ---
[INFO] Building jar: /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/webservice-0.4.58-sources.jar
[INFO]
[INFO] --- maven-javadoc-plugin:2.9.1:jar (attach-javadocs) @ webservice ---
[INFO]
Loading source files for package com.videoplaza.forecast.webservice...
Loading source files for package com.videoplaza.forecast.webservice.setup...
Loading source files for package com.videoplaza.forecast.webservice.exceptions...
Constructing Javadoc information...
Standard Doclet version 1.8.0
Building tree for all the packages and classes...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/BackendForecastService.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/BackendServicesFactory.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/CassandraHealthCheck.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/ForecastApiApplication.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/ForecastRestService.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/ForecastService.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/FormatUtil.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/HttpResponseUtil.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/pingResource.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/ThreadLocalSessionManager.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/VideoplazaSwaggerSpecFilter.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/setup/CassandraConf.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/setup/ForecastApiConfiguration.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/exceptions/ValidationExceptionMapper.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/overview-frame.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/package-frame.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/package-summary.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/package-tree.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/exceptions/package-frame.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/exceptions/package-summary.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/exceptions/package-tree.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/setup/package-frame.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/setup/package-summary.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/setup/package-tree.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/constant-values.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/class-use/HttpResponseUtil.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/class-use/CassandraHealthCheck.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/class-use/pingResource.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/class-use/BackendForecastService.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/class-use/VideoplazaSwaggerSpecFilter.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/class-use/ForecastRestService.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/class-use/FormatUtil.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/class-use/ForecastService.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/class-use/ThreadLocalSessionManager.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/class-use/BackendServicesFactory.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/class-use/ForecastApiApplication.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/setup/class-use/ForecastApiConfiguration.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/setup/class-use/CassandraConf.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/exceptions/class-use/ValidationExceptionMapper.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/package-use.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/exceptions/package-use.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/com/videoplaza/forecast/webservice/setup/package-use.html...
Building index for all the packages and classes...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/overview-tree.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/index-all.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/deprecated-list.html...
Building index for all classes...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/allclasses-frame.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/allclasses-noframe.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/index.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/overview-summary.html...
Generating /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/apidocs/help-doc.html...
[INFO] Building jar: /var/lib/jenkins/jobs/Forecast-api-release/workspace/webservice/target/webservice-0.4.58-javadoc.jar
[INFO]
[INFO] --- capsule-maven-plugin:0.7.1:capsule (default) @ webservice ---
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-plugin-api/3.2.2/maven-plugin-api-3.2.2.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-plugin-api/3.2.2/maven-plugin-api-3.2.2.pom (3 KB at 42.8 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven/3.2.2/maven-3.2.2.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven/3.2.2/maven-3.2.2.pom (23 KB at 408.5 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-parent/24/maven-parent-24.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-parent/24/maven-parent-24.pom (37 KB at 581.2 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-model/3.2.2/maven-model-3.2.2.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-model/3.2.2/maven-model-3.2.2.pom (5 KB at 44.0 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/plexus/plexus-utils/3.0.17/plexus-utils-3.0.17.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/plexus/plexus-utils/3.0.17/plexus-utils-3.0.17.pom (4 KB at 195.0 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-artifact/3.2.2/maven-artifact-3.2.2.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-artifact/3.2.2/maven-artifact-3.2.2.pom (2 KB at 101.3 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/sisu/org.eclipse.sisu.plexus/0.0.0.M5/org.eclipse.sisu.plexus-0.0.0.M5.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/sisu/org.eclipse.sisu.plexus/0.0.0.M5/org.eclipse.sisu.plexus-0.0.0.M5.pom (5 KB at 120.9 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/sisu/sisu-plexus/0.0.0.M5/sisu-plexus-0.0.0.M5.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/sisu/sisu-plexus/0.0.0.M5/sisu-plexus-0.0.0.M5.pom (13 KB at 716.3 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/javax/enterprise/cdi-api/1.0/cdi-api-1.0.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/javax/enterprise/cdi-api/1.0/cdi-api-1.0.pom (2 KB at 45.2 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/jboss/weld/weld-api-parent/1.0/weld-api-parent-1.0.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/jboss/weld/weld-api-parent/1.0/weld-api-parent-1.0.pom (3 KB at 135.3 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/jboss/weld/weld-api-bom/1.0/weld-api-bom-1.0.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/jboss/weld/weld-api-bom/1.0/weld-api-bom-1.0.pom (8 KB at 406.4 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/jboss/weld/weld-parent/6/weld-parent-6.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/jboss/weld/weld-parent/6/weld-parent-6.pom (21 KB at 1347.1 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/sisu/org.eclipse.sisu.inject/0.0.0.M5/org.eclipse.sisu.inject-0.0.0.M5.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/sisu/org.eclipse.sisu.inject/0.0.0.M5/org.eclipse.sisu.inject-0.0.0.M5.pom (3 KB at 123.0 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/sisu/sisu-inject/0.0.0.M5/sisu-inject-0.0.0.M5.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/sisu/sisu-inject/0.0.0.M5/sisu-inject-0.0.0.M5.pom (14 KB at 719.3 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-project/3.0-alpha-2/maven-project-3.0-alpha-2.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-project/3.0-alpha-2/maven-project-3.0-alpha-2.pom (4 KB at 87.0 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven/3.0-alpha-2/maven-3.0-alpha-2.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven/3.0-alpha-2/maven-3.0-alpha-2.pom (21 KB at 673.4 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-model/3.0-alpha-2/maven-model-3.0-alpha-2.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-model/3.0-alpha-2/maven-model-3.0-alpha-2.pom (4 KB at 87.9 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.pom (2 KB at 24.2 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-compat/3.0-alpha-2/maven-compat-3.0-alpha-2.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-compat/3.0-alpha-2/maven-compat-3.0-alpha-2.pom (3 KB at 71.0 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/plexus/plexus-container-default/1.0-beta-3.0.5/plexus-container-default-1.0-beta-3.0.5.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/plexus/plexus-container-default/1.0-beta-3.0.5/plexus-container-default-1.0-beta-3.0.5.pom (2 KB at 50.9 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/plexus/plexus-containers/1.0-beta-3.0.5/plexus-containers-1.0-beta-3.0.5.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/plexus/plexus-containers/1.0-beta-3.0.5/plexus-containers-1.0-beta-3.0.5.pom (5 KB at 89.2 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/plexus/plexus-classworlds/1.4/plexus-classworlds-1.4.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/plexus/plexus-classworlds/1.4/plexus-classworlds-1.4.pom (5 KB at 69.1 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/plexus/plexus/2.0.0/plexus-2.0.0.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/plexus/plexus/2.0.0/plexus-2.0.0.pom (8 KB at 268.3 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/com/google/code/google-collections/google-collect/snapshot-20080530/google-collect-snapshot-20080530.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/com/google/code/google-collections/google-collect/snapshot-20080530/google-collect-snapshot-20080530.pom (2 KB at 41.7 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/plexus/plexus-component-annotations/1.0-beta-3.0.5/plexus-component-annotations-1.0-beta-3.0.5.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/plexus/plexus-component-annotations/1.0-beta-3.0.5/plexus-component-annotations-1.0-beta-3.0.5.pom (602 B at 25.6 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/wagon/wagon-provider-api/1.0-beta-4/wagon-provider-api-1.0-beta-4.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/wagon/wagon-provider-api/1.0-beta-4/wagon-provider-api-1.0-beta-4.pom (906 B at 22.7 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/wagon/wagon/1.0-beta-4/wagon-1.0-beta-4.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/wagon/wagon/1.0-beta-4/wagon-1.0-beta-4.pom (11 KB at 243.8 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/woodstox/wstx-asl/3.2.6/wstx-asl-3.2.6.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/woodstox/wstx-asl/3.2.6/wstx-asl-3.2.6.pom (2 KB at 22.3 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/sonatype/spice/model-builder/1.3/model-builder-1.3.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/sonatype/spice/model-builder/1.3/model-builder-1.3.pom (3 KB at 53.0 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-project-builder/3.0-alpha-2/maven-project-builder-3.0-alpha-2.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-project-builder/3.0-alpha-2/maven-project-builder-3.0-alpha-2.pom (2 KB at 41.2 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/aether/aether-api/1.0.0.v20140518/aether-api-1.0.0.v20140518.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/aether/aether-api/1.0.0.v20140518/aether-api-1.0.0.v20140518.pom (2 KB at 26.8 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/aether/aether/1.0.0.v20140518/aether-1.0.0.v20140518.pom
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/aether/aether/1.0.0.v20140518/aether-1.0.0.v20140518.pom (30 KB at 516.6 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/sisu/org.eclipse.sisu.plexus/0.0.0.M5/org.eclipse.sisu.plexus-0.0.0.M5.jar
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/sisu/org.eclipse.sisu.inject/0.0.0.M5/org.eclipse.sisu.inject-0.0.0.M5.jar
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.jar
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/com/google/code/google-collections/google-collect/snapshot-20080530/google-collect-snapshot-20080530.jar
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar (44 KB at 644.9 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/woodstox/wstx-asl/3.2.6/wstx-asl-3.2.6.jar
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/sisu/org.eclipse.sisu.plexus/0.0.0.M5/org.eclipse.sisu.plexus-0.0.0.M5.jar (192 KB at 2665.8 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/sonatype/spice/model-builder/1.3/model-builder-1.3.jar
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/sisu/org.eclipse.sisu.inject/0.0.0.M5/org.eclipse.sisu.inject-0.0.0.M5.jar (285 KB at 3602.1 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-project-builder/3.0-alpha-2/maven-project-builder-3.0-alpha-2.jar
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/woodstox/wstx-asl/3.2.6/wstx-asl-3.2.6.jar (509 KB at 4705.5 KB/sec)
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.jar (35 KB at 195.8 KB/sec)
Downloading: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/aether/aether-api/1.0.0.v20140518/aether-api-1.0.0.v20140518.jar
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/sonatype/spice/model-builder/1.3/model-builder-1.3.jar (35 KB at 265.2 KB/sec)
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/com/google/code/google-collections/google-collect/snapshot-20080530/google-collect-snapshot-20080530.jar (490 KB at 2377.9 KB/sec)
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/eclipse/aether/aether-api/1.0.0.v20140518/aether-api-1.0.0.v20140518.jar (134 KB at 1331.0 KB/sec)
Downloaded: http://maven-repository.videoplaza.org/nexus/content/groups/central/org/apache/maven/maven-project-builder/3.0-alpha-2/maven-project-builder-3.0-alpha-2.jar (166 KB at 825.6 KB/sec)
[WARNING] Error injecting: com.github.christokios.CapsuleMojo
com.google.inject.ProvisionException: Guice provision errors:
1) No implementation for org.eclipse.aether.RepositorySystem was bound.
while locating com.github.christokios.CapsuleMojo
1 error
at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:974)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1000)
at org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:45)
at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:84)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:52)
at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100)
at org.sonatype.guice.plexus.lifecycles.PlexusLifecycleManager.onProvision(PlexusLifecycleManager.java:138)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:108)
at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55)
at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:965)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1011)
at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:961)
at com.google.inject.Scopes$1$1.get(Scopes.java:59)
at org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:83)
at org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:49)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:253)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:245)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:455)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:92)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:178)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:134)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:69)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:328)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:744)
Notifying upstream projects of job completion
Join notifier requires a CauseAction
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Forecast API root ................................. SUCCESS [5.481s]
[INFO] Forecast API ...................................... SUCCESS [43.070s]
[INFO] webservice ........................................ FAILURE [39.539s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:29.380s
[INFO] Finished at: Thu Aug 28 11:19:34 CEST 2014
[INFO] Final Memory: 44M/108M
[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[ERROR] Failed to execute goal com.github.christokios:capsule-maven-plugin:0.7.1:capsule (default) on project webservice: Execution default of goal com.github.christokios:capsule-maven-plugin:0.7.1:capsule failed: Unable to load the mojo 'capsule' (or one of its required components) from the plugin 'com.github.christokios:capsule-maven-plugin:0.7.1': com.google.inject.ProvisionException: Guice provision errors:
[ERROR]
[ERROR] 1) No implementation for org.eclipse.aether.RepositorySystem was bound.
[ERROR] while locating com.github.christokios.CapsuleMojo
[ERROR] at ClassRealm[plugin>com.github.christokios:capsule-maven-plugin:0.7.1, parent: sun.misc.Launcher$AppClassLoader@5c647e05]
[ERROR] while locating org.apache.maven.plugin.Mojo annotated with @com.google.inject.name.Named(value=com.github.christokios:capsule-maven-plugin:0.7.1:capsule)
[ERROR]
[ERROR] 1 error
[ERROR] role: org.apache.maven.plugin.Mojo
[ERROR] roleHint: com.github.christokios:capsule-maven-plugin:0.7.1:capsule
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :webservice
From the pom.xml:
<plugin>
<groupId>com.github.christokios</groupId>
<artifactId>capsule-maven-plugin</artifactId>
<version>0.7.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>capsule</goal>
</goals>
<configuration>
<!-- REQUIRED -->
<appClass>com.videoplaza.forecast.webservice.ForecastApiApplication</appClass>
<!-- OPTIONAL -->
<outputDir>target/</outputDir>
<buildExec>true</buildExec>
<manifest>
<property>
<name>Min-Java-Version</name>
<value>1.8.0</value>
</property>
</manifest>
</configuration>
</execution>
</executions>
</plugin>
Any ideas as to what the problem is?
Codehaus has closed it's doors.
We have a project in which we run integration tests locally (using failsafe) and also remotely (as smoke tests). That requires us to package our test code into a jar file, for which we currently use the Maven shade plugin. I would love to migrate from Maven shade to Capsule using this Maven plugin, but currently it does not support packaging test jars.
For Maven shade, all we had to do was add a dependency that looked like this:
<dependency>
<groupId>some.group</groupId>
<artifactId>some.artifact</artifactId>
<type>test-jar</type>
</dependency>
Then, in the pom file for that artifact we just added this plugin:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
That plugin creates an --test.jar file, which is then packaged by Maven Shade in the other project.
I took a look at the code for this plugin, and it looks like the Maven Aether libraries do not support the tag for dependencies. If that is the case, this may be a difficult thing to fix. I'm sending this issue in the hopes that there is a work-around about which I am not aware.
The code you've added to include arbitrary dependencies looks like it could easily be modified to include test jars, as that code doesn't use Aether, and the API it uses does know about the type tag. If there isn't a known workaround for Aether, I can send a pull request to use the dependency mechanism instead, which is good enough for us.
Thank you!
Type: Feature request
What:
Add an option to include dependencies declared to the capsule plugin into the built capsule.
How:
By including declared plugin dependencies, here jetty-runner
. There could optionally be a configuration switch to toggle this behavour includePluginDependencies
.
<plugin>
<groupId>com.github.chrisdchristo</groupId>
<artifactId>capsule-maven-plugin</artifactId>
<version>1.4.3</version>
<configuration>
<appClass>Main</appClass>
<type>fat</type>
</configuration>
<dependencies>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-runner</artifactId>
<version>${jetty.version}</version>
</dependency>
</dependencies>
</plugin>
Why:
The use case it to build a regular war
artifact and use capsule to separately build a runnable jar
project. This can be achieved quite easily by introducing e.g., a jetty dependency and let the Main
class bootstrap it.
Simply marking the jetty depdency as <scope>provided</scope>
and set <includeProvidedDep>true</includeProvidedDep>
is a poor solution since there may be other provided dependencies.
Comment:
Another approach is to permit downloading dependencies using the dependencySets
as such:
<plugin>
<groupId>com.github.chrisdchristo</groupId>
<artifactId>capsule-maven-plugin</artifactId>
<version>1.4.3</version>
<configuration>
<appClass>Main</appClass>
<type>fat</type>
<dependencySets>
<dependencySet>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-runner</artifactId>
<version>9.4.0.v20161208</version>
</dependencySet>
</dependencySets>
</configuration>
</plugin>
I'm having problem with generating capsule for subprojects.
I have project A and project B.
Project A depends on project B.
I'm trying to include project B into A as described in #28.
The problem is that at runtime I'm missing dependencies for project B.
It happens because at compile time only dependencies for project A are put into manifest and at runtime there is no way to resolve dependencies to project B.
Classifier is ignored for dependencies. It is not added to the manifest file.
As far as I see the following pattern works:
groupId:artifactId:version:classifier
Like execPluginConfig, it would be nice to have an execAssemblyConfig which would re-processes a JAR created by the maven assembly plugin, to add in Capsule and generate a new jar.
Hi, I encountered some problem while building with capsule maven plugin since upgrading from 0.10.8 to the latest one. here came the stack trace as follows:
what's more, my configuration with capsule was like this, please help me if I were wrong with such:
<plugin>
<groupId>com.github.chrischristo</groupId>
<artifactId>capsule-maven-plugin</artifactId>
<version>${capsule.maven.plugin.version}</version>
<configuration>
<!-- Main class -->
<appClass>com.mama100.platform.test.rocetmqdemo.RocketMQDemoMain</appClass>
<!-- direct launch -->
<trampoline>true</trampoline>
<!-- output type and suffix -->
<types>fat</types>
<customDescriptorFat>-all</customDescriptorFat>
<!-- manifest -->
<manifest>
<entry>
<key>Min-Java-Version</key>
<value>1.7.0</value>
</entry>
<entry>
<key>BuildBy</key>
<value>bwzhang</value>
</entry>
</manifest>
</configuration>
<executions>
<execution>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
Hey!
This is a bit similar to chrisdchristo/capsule-maven-plugin-demo#1.
Trying to build without specifying <capsule.version>0.7.1</capsule.version>
causes the build to break with
[INFO] [Capsule] Created: webservice-0-SNAPSHOT-capsule-empty.jar
java.io.IOException: Capsule not found from repos
at com.github.christokios.CapsuleMojo.resolveCapsule(CapsuleMojo.java:322)
at com.github.christokios.CapsuleMojo.getAllCapsuleClasses(CapsuleMojo.java:295)
at com.github.christokios.CapsuleMojo.buildEmpty(CapsuleMojo.java:147)
at com.github.christokios.CapsuleMojo.execute(CapsuleMojo.java:125)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
I guess the default for this should not be 0.6.1-SNAPSHOT, but rather 0.7.1.
Now that we have #28 working from the perspective of Maven packaging I've discovered that setting all my app dependencies as <scope>provided</scope>
breaks runtime development within IntelliJ. :(
Would it be possible to have a setting to exclude <optional>true</optional>
dependencies from the fat jar? Or maybe just automatically exclude those too? The <provided>
scope works for Capsule generation but otherwise breaks development.
It looks like this plugin depends on 1.0.0 but in October puniverse issued a point release with some fixes that may be important. Currently I'm using the <capsule.version>
properties trick, but maybe it's a good idea to update the dependency.
Hi, I'm in the context when I'm producing only 1 JAR and I would like to be able to configure its name. It seems to me this is not possible in the current version.
Just throws an IOException at the moment (Cannot find the path)
As far as I can tell, if the target capsule JAR file already exits, it is silently not overwritten. I have to manually delete the target or run clean in order for it to be built and changes in the code reflected in the capsule. It would be better if the capsule building step explicitly threw an error when this happens or warns and actually overwrites the target capsule.
I'm trying to create fat jar for multiproject capsule as described in #28.
However in my organization access to maven central is restricted. We are using mirrors.
My settings.xml defines mirrors:
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>MY_ORGANIZATION_MIRROR</url>
</mirror>
</mirrors>
The problem is that fat jar doesn't contain Repository tag as thin jar.
Could you change the code that Repository tag is automatically added for fat jar too?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.