This is the story of how I wasted three days fighting a pom file, Artifactory, and Apache itself.
While trying to add
activemq-pool to a project at work, I was greeted with this message in Artifactory:
Failed to transform pom file: Failed to read POM for 'org/apache/geronimo/specs/specs/1.1/specs-1.1.pom': expected START_TAG or END_TAG not TEXT (position: TEXT seen ...</developers>\\n `\\n <p... @91:7) .
Upon further searching, I learned of GERONIMO-6590.
Somehow, a stray “`” was introduced in to the pom file of a dependent of a dependent of
activemq-pool, causing it to be malformed.
It seems that most XML parsers are willing to ignore a stray character.
The XML parser that Artifactory uses, for better or worse, is not one of those parsers.
To fix GERONIMO-6590 locally, do the following:
Add the following to your
The first dependency does not need to be
activemq-pool, but could be any dependency that has a child dependency of
Don’t worry if it’s dependent of a dependent.
See Maven’s exclusion rules for more information.
... <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-pool</artifactId> Add a comment to this line <version>5.15.2</version> <exclusions> <exclusion> <!-- Ignore the built in version, and use a newer version --> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-jta_1.0.1B_spec</artifactId> </exclusion> </exclusions> </dependency> <!-- Since this relies on org.apache.geronimo.specs:spec-1.1, Artifactory won't pull it in. --> <!-- So we bump this dependency from 1.1 to 1.1.1 --> <dependency> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-jta_1.0.1B_spec</artifactId> <version>1.1.1</version> </dependency> ...