У меня есть многомодульная сборка Maven, в которой один модуль затеняет библиотеку, а другой модуль использует общую библиотеку.
Если я запустил mvn test
, это приведет к package com.example.shaded.javax.el7 does not exist
.
Если я запустил mvn package test
, компиляция и тесты пройдут.
Итак, я бы хотел, чтобы затененный модуль не просто компилировался, но был затенен (упакован) при запуске maven-shade-plugin:3.2.1:shade
перед компиляцией зависимого модуля.
Можно ли ввести такую целевую зависимость в maven в pom.xml?
При привязке плагина тени к фазам, отличным от пакета, появляется следующее сообщение об ошибке:
[ERROR] The project main artifact does not exist. This could have the following
[ERROR] reasons:
[ERROR] - You have invoked the goal directly from the command line. This is not
[ERROR] supported. Please add the goal to the default lifecycle via an
[ERROR] <execution> element in your POM and use "mvn package" to have it run.
[ERROR] - You have bound the goal to a lifecycle phase before "package". Please
[ERROR] remove this binding from your POM such that the goal will be run in
[ERROR] the proper phase.