2017-01-18 2 views
0

У меня есть файл конфигурации logback.xml «production» log в файле src/main/resources ..., но этот каталог также содержит «тестовый» файл конфигурации logback-test.xml (который сначала ищет журнал).Gradle - как я могу исключить ресурс из исполняемого банку?

При создании исполняемого флага я хочу удалить «тестовый» xml-файл.

Я попробовал этот

jar { 
    manifest { 
     // PS this is the correct line for Shadow Plugin... 
     attributes 'Class-Path': '/libs/a.jar' 
     attributes 'Main-Class': 'core.MyMainClass' 
    } 
    exclude("**/resources/*test*") 
} 

и я попытался это

jar { 
    manifest { 
     attributes 'Class-Path': '/libs/a.jar' 
     attributes 'Main-Class': 'core.MyMainClass' 
    } 
    doLast { 
     exclude("**/resources/*test*") 
    } 
} 

... что я делаю не так?

позже

Я нахожу here, что я, вероятно, делает жизнь трудной для себя в помещение этих XMLs под/SRC/основные/ресурсы ... поэтому я создал новый каталог в ЦСИ/Logback , и вместо этого помещаем туда файлы. Я добавил это путь к классам (как Logback говорит, что это, где он ищет эти файлы), делая это:

test { 
    classpath += files('src/logback') 
} 

Интересно, а также значение, которое каротаж в процессе тестирования происходит нормально, этого достаточно, чтобы получить получившийся исполняемый файл jar, чтобы использовать logback OK при запуске.

К сожалению, настройка "shadowJar" task как этот

shadowJar { 
    baseName = 'DocumentIndexer' 
    classifier = null 
    version = project.version 
    exclude("logback/*test*") 
} 

или настройка "баночку" task так:

jar { 
    manifest { 
     attributes 'Class-Path': '/libs/a.jar' 
     attributes 'Main-Class': 'core.ConsoleIOHandler' 
    } 
    exclude("logback/*test*") 
} 

... просто отказывается работать: файл Logback-тест .xml все еще присутствует в банке.

ответ

0

Я получил the answer с форумов на gradle.org.

Основным ответом является то, что файл конфигурации «тестового» журнала должен находиться под управлением src/test/resources, а файл конфигурации «production» должен находиться под управлением src/main/resources. Таким образом, первый будет исключен из банки.

Ответчик также сказал, что «ресурсы» являются одним из корней, из которых указаны относительные пути.

Смежные вопросы