[shrinkwrap-issues] [JBoss JIRA] (SHRINKRES-227) ShrinkWrap Maven Resolver doesn't support env vars in settings.xml
James Rawlings (JIRA)
issues at jboss.org
Wed Aug 19 06:53:26 EDT 2015
[ https://issues.jboss.org/browse/SHRINKRES-227?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13099750#comment-13099750 ]
James Rawlings commented on SHRINKRES-227:
------------------------------------------
Hi Matous, I tried adding a settings-security.xml file but I still had issues, a similar one to before.
{code}
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running io.fabric8.cdi.weld.ExtensionTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.551 sec <<< FAILURE! - in io.fabric8.cdi.weld.ExtensionTest
io.fabric8.cdi.weld.ExtensionTest Time elapsed: 0.551 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.bootstrap.MavenSettingsBuilder.decryptPasswords(MavenSettingsBuilder.java:234)
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}
Are you sure env vars are supported? I just recreated the issue locally by adding the below to my own settings.xml..
{code:xml}
<server>
<id>nexus</id>
<username>${env.NEXUS_USERNAME}</username>
<password>${env.NEXUS_PASSWORD}</password>
</server>
{code}
Which gave me the stacktrace..
{code}
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)
{code}
Now if I escape the curly brackets the test passes but the env vars are not set properly and therefore I cannot deploy artifacts to nexus.
{code:xml}
<server>
<id>nexus</id>
<username>$\{env.NEXUS_USERNAME\}</username>
<password>$\{env.NEXUS_PASSWORD\}</password>
</server>
{code}
> 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