Giter Club home page Giter Club logo

capsule-maven-plugin's People

Contributors

chrisdchristo avatar khmarbaise avatar moxie0 avatar randgalt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

capsule-maven-plugin's Issues

Multi-module maven projects should include specified sibling modules artifacts in thin jars

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.

For a Java 7 maven project capsule-maven 0.10.4 fails with Unsupported major.minor version 52.0

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

FileWalker failure with large number of files

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)

Add capsule as pom dependency

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

Automatic binding to package phase

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)

How to start Push-Server-0.12.0-capsule-fat.jar

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

Make capsule name completely overridable

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.

Defaulting to latest capsule version breaks development system

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.

Feature sets should allow for standard Maven wildcard specifications

"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."

@JonathanDoughty

Incorrect handling of system properties with empty values

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 with JDK11

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

How to control LD_LIBRARY_PATH

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:

  1. include the platform specific jar into the package (it's not a Maven based artifact. I don't want to artificially force it into Maven or a Repo, that will make the configuration more confusing long term)
  2. how to add a value to the LD_LIBRARY_PATH so that on the Pi it will pick up the library directory.

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).

Leaving capsule.version unspecified *currently* resolves to an unstable snapshot

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>

Reactor builds?

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...

  • app
  • app-models
  • app-other

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?

Minimum requirements (Maven)

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?

Do not includes Repositories attribute by default

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:

  • the maven caplet is not used
  • it is local information that makes no sense to distribute

Exec Plugin to Capsule Plugin Mapping

Hi @chrischristo

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.

Allow capsule to be included by maven assembly

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

UnsatisfiedLinkError

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:

  • The capsule properly embarks at its root the jars containing the native libraries (lwjgl-platform-2.9.1-natives-windows.jar as an example, which contains lwjgl.dll).
  • I get an 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>

Custom capsule name bug

Seems like the generated file name of the capsule is incorrect. Instead of <finalName>-<descriptorName>.jar, the result is <finalName><finalName>-<descriptorName>.jar.

Should register artifacts for mvn install and mvn deploy or update documentation

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.

How to specify capsule-daemon?

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?

Error: No implementation for org.eclipse.aether.RepositorySystem was bound.

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?

Maven dependencies with type "test-jar" are not correctly resolved to the test jar file.

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!

Include plugin dependencies when building capsule

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>

Dependencies missing for subprojects

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.

Add classifier support

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

Request: Integrate with Maven assembly

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.

Capsule maven latest plugin build fail

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:
image

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> 

Can't build without specifying capsule.version

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.

Could we exclude optional dependencies from a fat jar?

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.

Update to Capsule 1.0.1

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.

Allow capsule JARs to be renamed

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.

Capsule silently not overwritten if already exists

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.

Support for mirrors

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?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.