Как фильтровать развернутый код при экспорте EAR из eclipse?

StackOverflow https://stackoverflow.com/questions/1178213

Вопрос

У меня есть базовое веб-приложение (динамический веб-проект в eclipse) со связанным проектом EAR.Я пытаюсь убедиться, что мой тестовый код junit не входит в файл EAR развертывания.

В моем веб-проекте у меня есть исходная папка с именем «src» и папка с именем «test».Мне нужно хранить файлы .class из исходной папки «test» OUT из EAR, когда я экспортирую их с помощью eclipse.

Я знаю, что это тривиально, используя ant, но кажется невозможным, используя eclipse.Щелкните проект правой кнопкой мыши и экспортируйте файл Ear.тестовые классы всегда включены.

Если я вручную отредактирую файл .setting/org.eclipse.wst.common.comComponent.xml, чтобы удалить тег, связанный с тестовой папкой, он работает, но если некоторые другие разработчики изменят что-либо, связанное с путем сборки, он будет перегенерирован...

Я упускаю что-то очевидное..Я гуглил как сумасшедший, но безрезультатно..проверил документы eclipse и в растерянности..

Это было полезно?

Решение

Кажется, что это невозможно, и это странно.Вот несколько обходных путей, которые вы можете попробовать.

Примечание. Я бы переместил файлы Java из веб-проекта в проект Java (вероятно, в любом случае это хорошая практика).В любом случае создайте еще один «тестовый» проект Java и переместите исходные коды теста в этот проект.Ваш тестовый проект объявляет «основной» проект Java как зависимость, поэтому он имеет доступ к типам для тестирования, но не включен в войну, поэтому тестовые классы не будут развернуты.

Альтернативно, если вы хотите сохранить источники в одном проекте, вы можете настроить тестовый проект на использование связанных ресурсов.я опубликовал другой ответ это показывает, как вы можете использовать связанные ресурсы для совместного использования исходных местоположений в разных проектах.При таком подходе исходные коды тестов по-прежнему не находятся на пути сборки основного проекта, поэтому не будут объединены в jar, но физически расположены в проекте, поэтому контроль версий упрощается.

Другие советы

Я делаю что-то подобное, но с PDE, используя Eclipse 3.7.Я развертываю плагины/пакеты Eclipse/OSGi и имею два исходных каталога Java:источник и тест

Я изменил содержимое двух файлов проекта eclipse, чтобы отделить тестовый код от кода сборки.

.classpath:

<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry export="false" kind="src" path="test"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry export="false" kind="lib" path="/thirdparty/junit/junit.jar"/>
    <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

Эти изменения были вызваны чтением этот

Я не знаю, применимо ли это к вашей ситуации, но мне также пришлось изменить build.properties файл, чтобы исключить результаты компиляции «теста» из созданного jar-файла.

source.optimizing.jar = src/
#This doesn't contain test/ because we don't want it in the build.

bin.includes = META-INF/,\
               optimizing.jar
#The junit.jar is also exluded               

Когда я собираю весь проект, тестовые файлы полностью отсутствуют.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top