Поведение, которое вы видите, действительно является правильным, и нет никакого способа убрать префикс «mod1» с нативными правилами Java.Все, что вы включаете в data
, будет отображаться в собственном пакете так, как вы видите.
Причина этого довольно проста.Предположим, что ваша цель теста //mod1:AllTests
также зависит от гипотетической библиотеки //mod2:tests
.И скажем, что гипотетическая библиотека также имела testdata/test.txt
в качестве зависимости данных.Несколько файлов test.txt
будут конфликтовать, если они не будут помещены в пространство имен своих пакетов.
Если вы абсолютно не можете изменить исходный код теста, то вы в значительной степени застряли.Вот предыдущее обсуждение по этому поводу: https://groups.google.com/forum/#!topic/bazel-discuss/w6TDwSZvN0k
Я бы порекомендовал, если вы пытаетесь работать с Bazel, вы принимаете концепцию runfiles и модифицируете свои тесты, чтобы либо работать со структурой runfiles, либо принятьаргумент командной строки для поиска тестовых данных.