Failing 'grails generate-pom' in Grails 2.4

Today I had some fun while trying to publish the new version of LittleGoblin.

The publish-plugin step failed while generating the pom file, with a rather obscure error:


ingo@turtle:~/personalWorkspace/goblin$ grails publish-plugin --no-scm --dry-run --stacktrace --verbose
Base Directory: /home/ingo/personalWorkspace/goblin
| Packaging Grails application.....
[...]
| Plugin packaged grails-goblin-0.4.0.1.zip
| Generating POM file.....
| Error Exception in thread "DefaultMetadataResolver-0-2"
| Error Exception in thread "DefaultMetadataResolver-0-0"
| Error Exception in thread "DefaultMetadataResolver-0-3"
| Error Exception in thread "DefaultMetadataResolver-0-1"
| Error java.lang.NoSuchMethodError: org.apache.http.client.utils.URIUtils.extractHost(Ljava/net/URI;)Lorg/apache/http/HttpHost;
| Error at org.eclipse.aether.transport.http.HttpTransporter.<init>(HttpTransporter.java:112)
| Error at org.eclipse.aether.transport.http.HttpTransporterFactory.newInstance(HttpTransporterFactory.java:93)
| Error at org.eclipse.aether.internal.impl.DefaultTransporterProvider.newTransporter(DefaultTransporterProvider.java:110)
| Error at org.eclipse.aether.connector.basic.BasicRepositoryConnector.<init>(BasicRepositoryConnector.java:115)
| Error at org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory.newInstance(BasicRepositoryConnectorFactory.java:180)
| Error at org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider.newRepositoryConnector(DefaultRepositoryConnectorProvider.java:113)
| Error at org.eclipse.aether.internal.impl.DefaultMetadataResolver$ResolveTask.run(DefaultMetadataResolver.java:603)
| Error at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67)
| Error at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
| Error at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
| Error at java.lang.Thread.run(Thread.java:724)
| Error java.lang.NoSuchMethodError: org.apache.http.client.utils.URIUtils.extractHost(Ljava/net/URI;)Lorg/apache/http/HttpHost;
| Error at org.eclipse.aether.transport.http.HttpTransporter.<init>(HttpTransporter.java:112)
| Error at org.eclipse.aether.transport.http.HttpTransporterFactory.newInstance(HttpTransporterFactory.java:93)
| Error at org.eclipse.aether.internal.impl.DefaultTransporterProvider.newTransporter(DefaultTransporterProvider.java:110)
| Error at org.eclipse.aether.connector.basic.BasicRepositoryConnector.<init>(BasicRepositoryConnector.java:115)
| Error at org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory.newInstance(BasicRepositoryConnectorFactory.java:180)
| Error at org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider.newRepositoryConnector(DefaultRepositoryConnectorProvider.java:113)
| Error at org.eclipse.aether.internal.impl.DefaultMetadataResolver$ResolveTask.run(DefaultMetadataResolver.java:603)
| Error at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67)
| Error at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
| Error at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
| Error at java.lang.Thread.run(Thread.java:724)
| Error java.lang.NoSuchMethodError: org.apache.http.client.utils.URIUtils.extractHost(Ljava/net/URI;)Lorg/apache/http/HttpHost;
| Error at org.eclipse.aether.transport.http.HttpTransporter.<init>(HttpTransporter.java:112)
| Error at org.eclipse.aether.transport.http.HttpTransporterFactory.newInstance(HttpTransporterFactory.java:93)
| Error at org.eclipse.aether.internal.impl.DefaultTransporterProvider.newTransporter(DefaultTransporterProvider.java:110)
| Error at org.eclipse.aether.connector.basic.BasicRepositoryConnector.<init>(BasicRepositoryConnector.java:115)
| Error at org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory.newInstance(BasicRepositoryConnectorFactory.java:180)
| Error at org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider.newRepositoryConnector(DefaultRepositoryConnectorProvider.java:113)
| Error at org.eclipse.aether.internal.impl.DefaultMetadataResolver$ResolveTask.run(DefaultMetadataResolver.java:603)
| Error at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67)
| Error at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
| Error at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
| Error at java.lang.Thread.run(Thread.java:724)
| Error java.lang.NoSuchMethodError: org.apache.http.client.utils.URIUtils.extractHost(Ljava/net/URI;)Lorg/apache/http/HttpHost;
| Error at org.eclipse.aether.transport.http.HttpTransporter.<init>(HttpTransporter.java:112)
| Error at org.eclipse.aether.transport.http.HttpTransporterFactory.newInstance(HttpTransporterFactory.java:93)
| Error at org.eclipse.aether.internal.impl.DefaultTransporterProvider.newTransporter(DefaultTransporterProvider.java:110)
| Error at org.eclipse.aether.connector.basic.BasicRepositoryConnector.<init>(BasicRepositoryConnector.java:115)
| Error at org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory.newInstance(BasicRepositoryConnectorFactory.java:180)
| Error at org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider.newRepositoryConnector(DefaultRepositoryConnectorProvider.java:113)
| Error at org.eclipse.aether.internal.impl.DefaultMetadataResolver$ResolveTask.run(DefaultMetadataResolver.java:603)
| Error at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67)
| Error at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
| Error at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
| Error at java.lang.Thread.run(Thread.java:724)
| Error Error executing script PublishPlugin: org.apache.http.client.utils.URIUtils.extractHost(Ljava/net/URI;)Lorg/apache/http/HttpHost;
java.lang.NoSuchMethodError: org.apache.http.client.utils.URIUtils.extractHost(Ljava/net/URI;)Lorg/apache/http/HttpHost;
at org.eclipse.aether.transport.http.HttpTransporter.<init>(HttpTransporter.java:112)
at org.eclipse.aether.transport.http.HttpTransporterFactory.newInstance(HttpTransporterFactory.java:93)
at org.eclipse.aether.internal.impl.DefaultTransporterProvider.newTransporter(DefaultTransporterProvider.java:110)
at org.eclipse.aether.connector.basic.BasicRepositoryConnector.<init>(BasicRepositoryConnector.java:115)
at org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory.newInstance(BasicRepositoryConnectorFactory.java:180)
at org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider.newRepositoryConnector(DefaultRepositoryConnectorProvider.java:113)
at org.eclipse.aether.internal.impl.DefaultMetadataResolver$ResolveTask.run(DefaultMetadataResolver.java:603)
at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
| Error Error executing script PublishPlugin: org.apache.http.client.utils.URIUtils.extractHost(Ljava/net/URI;)Lorg/apache/http/HttpHost;

After some searching I found the culprit:

A dependency on an old version of Groovy HttpBuilder:

compile("org.codehaus.groovy.modules.http-builder:http-builder:0.5.2") {
excludes "groovy"
}

The current version is at 0.7.2, but that one is not yet available to maven dependency resolution. So I use 0.7.1 and generate-pom now works.

 

Cinnamon 3 Developer VM

Checking out the source code, installing the database and adding the demo data may be difficult if you are not an experienced developer with some free time.

The alternative is: download the Cinnamon-Server-VM

The username is 'tex', with password 'tex'. Once unpacked, it will require about 11 GByte of your hard drive. You will need either VMware workstation (commercial) or VMware Player (free) to run the VM.


The Cinnamon developer VM contains the source code for the Cinnamon 3 server, including the dependencies (cinnamon-db and cinnamon-humulus) as well as a PostgreSQL server with a demo repository. So, you just can start up Cinnamon from the command line and open the browser to start exploring Cinnamon.
You can even connect with the desktop client from a Windows machine, for example if you wish to debug the code.

Also included is the Spring Groovy Grails Tool Suite, which is a free integrated development environment.

Cinnamon 3.0.0 released

Cinnamon 3 is live - you can download it from the Cinnamon SourceForge page.

Cinnamon is an enterprise CMS (not: a web CMS) which allows you to create and manage complex modular technical documentation - for example version safe authoring of a repair handbook for a truck with thousands of build combinations (different motors, transmission system, axles, chassis, electronic systems etc) and multiple languages. It's also suitable for document management workflows (with Word / Excel / PDF files) and you can store and search all kinds of data and files.

The new version is based completely on the Grails framework and marks the transition from a custom servlet solution to the use of a large and stable framework which offers higher maintainability, faster production time and easier extensibility.

The source code for the server and its dependencies is available from the Github repositories:

You can use Cinnamon as a standalone application, installed in a servlet container of your choice (for example, Apache Tomcat or Jetty) - or you can embed it into your own applications. It is a Grails plugin, so you can easily reuse all the features of a powerful enterprise CMS.

There is also a VMware virtual machine available: you can download the Cinnamon-Server-VM, which contains a ready-to-run server on an Ubuntu / PostgreSQL system. By using the desktop client, you can connect to this VM and experiment without having to do a manual install of the server code.

Cinnamon is licensed under the LGPL 2.1 (or later), included open source libraries may have different (compatible) licenses. So you can use Cinnamon for free in your commercial and non-commercial software.

Little Goblin: 0.3.4

Development on Little Goblin has resumed. To get reacquainted with the code, I have cleaned up some controllers and added the user management feature to the administrator's section.

   Version 0.3.4 "Users" / 2013-06-30

  •  #4: Added / fixed UserController. Still a little rough, but works.
  •  Upgraded to Grails 2.2.3
  • Code cleaning
  • Upgrade resources plugin to 1.2

Next on the issues list is the order management and a general critical review of the layout and GUI. Also I want to flesh out Schedim, the example of a Little Goblin based game used in the documentation.

 

Subcategories

  • Errors

    Descriptions of error messages and possible solutions

  • Little Goblin

    Posts about Little Goblin, the Grails based open source browser game engine and its reference implementation.

    The home page of Little Goblin is littlegoblin.de