Maven: remove a single transitive dependency

前端 未结 3 1806
猫巷女王i
猫巷女王i 2020-12-02 20:52

My project includes a jar file because it is listed as a transitive dependency.

However, I have verified not only that I don\'t need it but it causes problems becaus

3条回答
  •  有刺的猬
    2020-12-02 21:10

    The correct way is to use the exclusions mechanism, however sometimes you may prefer to use the following hack instead to avoid adding a large number of exclusions when lots of artifacts have the same transitive dependency which you wish to ignore. Rather than specifying an exclusion, you define an additional dependency with a scope of "provided". This tells Maven that you will manually take care of providing this artifact at runtime and so it will not be packaged. For instance:

        
                org.springframework
                spring
                2.5.6
        
        
                commons-logging
                commons-logging
                1.1.1
                provided
        
    

    Side effect: you must specify a version of the artifact-to-be-ignored, and its POM will be retrieved at build-time; this is not the case with regular exclusions. This might be a problem for you if you run your private Maven repository behind a firewall.

提交回复
热议问题