Dear Maven maintainers,

we are studying Maven dependency specifications and we would like to offer 
several possible improvements for Maven.


(1) The scope management of Maven is complicated and hard to distinguish. Maven 
maintained 6 scopes (i.e., compile, runtime, provided, system, test, and 
import). Compare to newer package managers such as NPM, which only has two 
scopes (i.e., dependencies, devdependencies), Maven has too many types of 
scopes, which makes it more difficult for users to understand. We went over all 
POMs on the Maven Central (around 8M artifacts, collected in March 2022) and 
count the frequency of all types of scope. Some of the scopes are rarely used. 
Only 0.35% of POMs in the Maven Center used system scope. Also, system scope is 
similar to provided scope, and import scope can hardly be regarded as a 
dependency scope. We suggest simplifying the types of scopes by merging system 
into provided and removing import.


(2) In the documentation of Default Artifact Handlers 
(https://maven.apache.org/ref/3.9.3/maven-core/artifact-handlers.html), type 
and classifier should introduce more commonly used values as their default 
value to provide better examples. We found that the default values are rarely 
used and are not good examples for users to understand the use of the settings. 
Setting commonly used values as default can help users understand the usage of 
the settings. We went over all POMs on the Maven Central (around 8M artifacts, 
collected in March 2022) and count the frequency of all possible values of 
classifier and type. According to our research, in classifier, the default 
values have low frequencies, including tests (1.05%), javadoc (0.35%), sources 
(0.29%), and client(0.01%). More commonly used values are features (1.20%), 
linux-x86_64 (0.34%), and osx-x86_64 (0.27%). As for type, the top default 
values are pom (4.38%), test-jar (2.85%), war (1.08%) and the rest of the 
values are all below 0.1%. Other common examples are esa (2.53%), zip (1.88%), 
and xml (1.31%).


Regards,

NTU CSL

Reply via email to