[shrinkwrap-issues] [JBoss JIRA] (SHRINKRES-227) ShrinkWrap Maven Resolver doesn't support env vars in settings.xml

Matous Jobanek (JIRA) issues at jboss.org
Thu Aug 20 09:55:26 EDT 2015


    [ https://issues.jboss.org/browse/SHRINKRES-227?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13100262#comment-13100262 ] 

Matous Jobanek commented on SHRINKRES-227:
------------------------------------------

Hi James,
I've tried it (env vars in settings.xml) and it worked in my case.

There are represented two different errors in the stacktraces you've observed - the first one starting with:
{panel}
at org.jboss.shrinkwrap.resolver.impl.maven.internal.decrypt.MavenSecurityDispatcher.getMaster(MavenSecurityDispatcher.java:171)
{panel}
is related to missing {{settings-security.xml}} file. You don't have it on your computer either, that's the reason you are observing this error.

When you put it into the Jenkins instance, the error changed to the second one - starting with:
{panel}
at org.jboss.shrinkwrap.resolver.impl.maven.bootstrap.MavenSettingsBuilder.decryptPasswords(MavenSettingsBuilder.java:234)
{panel}
this is related to decrypting passwords - this can be caused by many things such as: wrong master password or wrong encrypted version of your password,...

Have you tried to put the values (username and password) directly into the settings.xml?
Have you followed the steps for password encryption? https://maven.apache.org/guides/mini/guide-encryption.html

> ShrinkWrap Maven Resolver doesn't support env vars in settings.xml
> ------------------------------------------------------------------
>
>                 Key: SHRINKRES-227
>                 URL: https://issues.jboss.org/browse/SHRINKRES-227
>             Project: ShrinkWrap Resolvers
>          Issue Type: Feature Request
>          Components: maven
>            Reporter: James Rawlings
>
> I get the stacktrace below when using this code on a jenkins instance that uses env vars in the settings.xml
> {code}
> return ShrinkWrap.create(WebArchive.class)
>                 .addClasses(StringToURL.class, URLToConnection.class, NestingFactoryBean.class, ServiceStringBean.class, ServiceUrlBean.class, ClientProducer.class)
>                 .addClasses(DeltaspikeTestBase.getDeltaSpikeHolders())
>                 .addAsWebInfResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml"))
>                 .addAsLibraries(Maven.resolver().loadPomFromFile("pom.xml")
>                         .resolve(
>                                 "org.apache.deltaspike.core:deltaspike-core-impl",
>                                 "com.google.mockwebserver:mockwebserver"
>                         )
>                         .withTransitivity().as(File.class));
> {code}
> Stacktrace..
> {code}
> -------------------------------------------------------
>  T E S T S
> -------------------------------------------------------
> Running io.fabric8.cdi.weld.ExtensionTest
> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.51 sec <<< FAILURE! - in io.fabric8.cdi.weld.ExtensionTest
> io.fabric8.cdi.weld.ExtensionTest  Time elapsed: 0.51 sec  <<< ERROR!
> java.lang.RuntimeException: Could not invoke deployment method: public static org.jboss.shrinkwrap.api.spec.WebArchive io.fabric8.cdi.weld.ExtensionTest.createDeployment()
> 	at org.jboss.shrinkwrap.resolver.impl.maven.internal.decrypt.MavenSecurityDispatcher.getMaster(MavenSecurityDispatcher.java:171)
> 	at org.jboss.shrinkwrap.resolver.impl.maven.internal.decrypt.MavenSecurityDispatcher.decrypt(MavenSecurityDispatcher.java:96)
> 	at org.jboss.shrinkwrap.resolver.impl.maven.internal.decrypt.MavenSettingsDecrypter.decrypt(MavenSettingsDecrypter.java:92)
> 	at org.jboss.shrinkwrap.resolver.impl.maven.internal.decrypt.MavenSettingsDecrypter.decrypt(MavenSettingsDecrypter.java:60)
> 	at org.jboss.shrinkwrap.resolver.impl.maven.bootstrap.MavenSettingsBuilder.decryptPasswords(MavenSettingsBuilder.java:223)
> 	at org.jboss.shrinkwrap.resolver.impl.maven.bootstrap.MavenSettingsBuilder.buildSettings(MavenSettingsBuilder.java:186)
> 	at org.jboss.shrinkwrap.resolver.impl.maven.bootstrap.MavenSettingsBuilder.buildDefaultSettings(MavenSettingsBuilder.java:113)
> 	at org.jboss.shrinkwrap.resolver.impl.maven.MavenWorkingSessionImpl.<init>(MavenWorkingSessionImpl.java:136)
> 	at org.jboss.shrinkwrap.resolver.impl.maven.MavenResolverSystemImpl.<init>(MavenResolverSystemImpl.java:44)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
> 	at org.jboss.shrinkwrap.resolver.spi.loader.SpiServiceLoader.createInstance(SpiServiceLoader.java:244)
> 	at org.jboss.shrinkwrap.resolver.spi.loader.SpiServiceLoader.createInstances(SpiServiceLoader.java:208)
> 	at org.jboss.shrinkwrap.resolver.spi.loader.SpiServiceLoader.all(SpiServiceLoader.java:79)
> 	at org.jboss.shrinkwrap.resolver.spi.loader.SpiServiceLoader.onlyOne(SpiServiceLoader.java:85)
> 	at org.jboss.shrinkwrap.resolver.spi.loader.ServiceRegistry.onlyOne(ServiceRegistry.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:497)
> 	at org.jboss.shrinkwrap.resolver.api.Invokable.invokeMethod(Invokable.java:100)
> 	at org.jboss.shrinkwrap.resolver.api.ResolverSystemFactory.createFromUserView(ResolverSystemFactory.java:91)
> 	at org.jboss.shrinkwrap.resolver.api.ResolverSystemFactory.createFromUserView(ResolverSystemFactory.java:53)
> 	at org.jboss.shrinkwrap.resolver.api.Resolvers.use(Resolvers.java:68)
> 	at org.jboss.shrinkwrap.resolver.api.maven.Maven.resolver(Maven.java:36)
> 	at io.fabric8.cdi.weld.ExtensionTest.createDeployment(ExtensionTest.java:49)
> {code}
> This error is similar to issue https://issues.jboss.org/browse/SHRINKRES-145 however I cannot escape the values in my settings.xml as they need to resolve to env vars.
> Example snippet of my settings.xml..
> {code:xml}
> <servers>
>   <server>
>     <id>local-nexus</id>
>     <username>${env.NEXUS_USERNAME}</username>
>     <password>${env.NEXUS_PASSWORD}</password>
>   </server>
>   <server>
>     <id>nexus</id>
>     <username>${env.NEXUS_USERNAME}</username>
>     <password>${env.NEXUS_PASSWORD}</password>
>   </server>
>   <server>
>     <id>docker-registry</id>
>     <username>${env.DOCKER_REGISTRY_USERNAME}</username>
>     <password>${env.DOCKER_REGISTRY_PASSWORD}</password>
>   </server>
> </servers>
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


More information about the shrinkwrap-issues mailing list