What is the difference between maven dependencies

2019-01-11 23:25发布

问题:

Maven repositories contain these two dependencies: org.apache.commons:commons-io:1.3.2 and commons-io:commons-io:1.3.2. What is the difference and which one I should be using in my pom.xml?

In general some of the apache commons packages are located in http://repo1.maven.org/maven2/org/apache/commons/ and most of the commons-* packages are located here http://repo1.maven.org/maven2/.

回答1:

From commons-io website. the latest release is 2.0.1. 1.3.2 is pretty old. Given this information, the repository in http://repo2.maven.org/maven2/commons-io/ holds the latest releases and is the right one to use.

This related mail thread makes interesting reading.



回答2:

The deployment of

org.apache.commons:commons-io:1.3.2

Was a mistake that was ultimately fixed by relocating:

POM of org.apache.commons:commons-io:1.3.2

To use commons-io:commons-io:1.3.2.

The mistake was likely an attempt to migrate the Commons IO library to use the current naming convention for Maven groupIds.



回答3:

The two dependencies look the same. I would prefer to use commons-io:commons-io, cause the pom of org.apache.commons:commons-io:1.3.2 is wrong (wrong groupId!)

The artifacts located at this position: http://repo1.maven.org/maven2/org/apache/commons/ are newer in date than the others.