Когда вы делаете это:
B.dependsOn(A % "compile->compile")
что происходит, так это то, что когда B
компилируется, он выполняет компиляцию A
и делает ее доступной для B
. Это означает, что ваши файлы конфигурации в A
будут доступны для B
, потому что конфигурация Type-Safe помещает эти конфигурации в путь к классам.
Самым простым решением, вероятно, является пространство имен ваших свойств, чтобы модуль B
использовал свойства только из своей собственной конфигурации, а не A
s. (Это лучшая практика, позволяющая четко разделять задачи.) Если конфигурация B
предназначена для переопределения конфигурации A
по умолчанию и предполагается, что A
по сути является библиотекой, используемой B
, выполните следующие действия. рекомендации здесь и поместите файл resource.conf
в A
, а файл application.conf
в B
, так как application.conf
имеет более высокий приоритет.
В вашем случае и A
, и B
полагаются на общий код. Чтобы сохранить разделение задач, лучше всего преобразовать этот общий код в отдельный библиотечный модуль и сделать так, чтобы оба A
и B
ссылались на этот код. Таким образом, вы можете гарантировать, что свойства, на которые они оба полагаются, находятся в C
, а свойства, которые правильно установлены либо A
, либо B
, находятся только в их домене.
person
Nathaniel Ford
schedule
25.10.2016