Есть ли способ скрыть цель / папку Maven 2 в Eclipse 3?

Я использую maven 2.0.9 с Eclipse 3.3.2.

Я привык запускать новую сборку раз в день mvn clean install. Затем, если я обновлю свой проект Eclipse, он будет «загрязнен» файлами из каталога Maven target.

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

Есть ли способ избежать просмотра этой папки Eclipse?


person paulgreg    schedule 12.11.2008    source источник


Ответы (12)


Щелкните правой кнопкой мыши папку, которую вы хотите игнорировать, откройте диалоговое окно «Свойства», выберите вкладку «Ресурс» и установите флажок «Производный».

person Community    schedule 13.11.2008
comment
Единственная проблема с этим методом заключается в том, что если вы когда-либо вызываете maven eclipse: clean, вам придется повторно применить изменения вашего проекта. знак равно - person Spencer Kormos; 13.11.2008
comment
Щелкните папку правой кнопкой мыши, выберите СВОЙСТВА, затем установите флажок Производные. По крайней мере, это то, что вам нужно делать с Галилео. - person George Armhold; 04.11.2009
comment
Если это не работает, убедитесь, что вы удалили все элементы истории в диалоге открытия ресурсов ... - person Juan Calero; 24.01.2011
comment
@paulgreg: отметьте этот ответ как принятый, пожалуйста. подтверждена работа над Eclipse Helios 3.6 SR2 - person Hendy Irawan; 26.04.2011
comment
Это не, похоже, у меня работает, однако я не уверен, что и где находится диалог открытых ресурсов. Я пробовал очистить проект, но все равно получаю предупреждение о ненужном приведении ... - person Svend Hansen; 22.11.2012
comment
В eclipse neon кажется, что даже запуск чистой компиляции mvn (которая воссоздает целевую папку) сохраняет параметр «производный». - person gwnp; 31.07.2017

Перенастройте «чистый» в Maven, чтобы не удалять целевой каталог:

<plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <configuration>
        <excludeDefaultDirectories>true</excludeDefaultDirectories>
        <filesets>
            <!-- delete directories that will be generated when you 
                 start the develpment server/client in eclipse  
            -->
            <fileset>
                <directory>target</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </fileset>
        </filesets>
    </configuration>
</plugin>

(находится по адресу: http://maven.40175.n5.nabble.com/how-to-NOT-delete-target-dir-td3389739.html#a3413930)

person Marx    schedule 04.04.2011
comment
Это завершает ответ Зака ​​(набравший наибольшее количество голосов). Без этого обходного пути это решение бесполезно. Работает отлично. К сожалению, его нужно настраивать для каждого проекта. - person Juan Calero; 28.07.2011
comment
Спасибо большое, это именно то, что мне нужно! Необходимость устанавливать производный флаг после каждой очистки действительно расстраивала. - person Piotr Sobczyk; 07.03.2012
comment
Спасибо. На самом деле это должен быть принятый ответ, поскольку он решает настоящую проблему вопрошающего. Однако следует отметить, что excludeDefaultDirectories доступен только с версии 2.3 maven-clean-plugin: maven.apache.org/plugins/maven-clean-plugin/clean-mojo.html - person lilalinux; 28.01.2014

Решение для Индиго [SR2]

Project Explorer > Customize View > Filters > [*] Maven Build Folder

person Mike R    schedule 26.04.2013

Меня настолько разозлила эта проблема, что я написал плагин для ее решения. Вы получаете исходный код и банку из:

https://github.com/YA2O/Eclipse_Plugin_Target_Derivator

person YA2O    schedule 23.01.2012
comment
Ваш плагин отлично работает. Я только что сбросил github.com/YA2O/Eclipse_Plugin_Target_Derivator/ его в папку eclipse / dropins / и пришлось изменить * .jar / icons / Pointy.gif на какой-то меньший, иначе высота панели инструментов будет слишком большой. - person OMax; 26.01.2012

To solve this problem here is what I did:

  • Установите Groovy Monkey для Eclipse
  • Создан сценарий оболочки компонента «UpdateMavenDerived_Beanshell.gm», чтобы пометить любой каталог с именем target как производный.
  • ----------- Вырежьте здесь сценарий ниже --------------

    /*
     * Menu: Find System Prints > Beanshell
     * Script-Path: /GroovyMonkeyScripts/monkey/UpdateMavenDerived_Beanshell.gm
     * Kudos: Bjorn Freeman-Benson & Ward Cunningham & James E. Ervin
     * License: EPL 1.0
     * LANG: Beanshell
     * DOM: http://groovy-monkey.sourceforge.net/update/plugins/net.sf.groovyMonkey.dom
     */
    out.println("Setting target directories to derived status.");
    var projects = workspace.getRoot().getProjects();
    for ( var i = 0; i < projects.length; i++) {
        var project = projects[i];
        if (project.isOpen()) {
            out.println("Project: " + project.getName());
            var members = project.members();
            for ( var j = 0; j < members.length; j++) {
                if (members[j].getName().equals("target")) {
                    out.println("setting derived status on: "+ members[j].getFullPath());
                    members[j].setDerived(true);
                }
            }
        }
    }
    
    person Stephen Hart    schedule 15.06.2011
    comment
    это сложнее, чем должно быть id;) но все же прилично - person Maciej Cygan; 01.07.2014

    Вы пытались настроить диалоговое окно параметров «Фильтры элементов Java» (с помощью стрелки вверху справа в проводнике проекта)?

    При необходимости вы можете определить свой собственный ViewerFilter

    person VonC    schedule 12.11.2008
    comment
    Я пробовал это несколько недель назад, но не смог получить то, что хочу. - person paulgreg; 12.11.2008

    Настройки> Команда> Игнорируемые ресурсы

    Добавьте «цель» и перезапустите Eclipse.

    person Community    schedule 01.05.2009
    comment
    Это только указывает вашему контролю версий игнорировать его. Никакого видимого влияния на другие операции. - person Chris Noe; 15.06.2010
    comment
    Удаляет его из представления синхронизации команды, чего нет у других. по крайней мере, по крайней мере для меня. - person Clarkey; 25.06.2013
    comment
    Под управлением Кеплера подействовал на меня как шарм. - person ug_; 20.05.2014
    comment
    Проблема в том, что он игнорирует любой каталог с именем target где угодно. Это означает, что любые источники в org / msytuff / target игнорируются. Хорошо, может, тебе не стоит называть такие вещи, но, поскольку я работаю с чужим кодом, я не могу рискнуть ... - person David Robson; 02.03.2016

    Плагин maven не скрывает целевой каталог. Однако он использует целевые папки maven для настройки eclipse. Таким образом, классы target / classes и target / test используются eclipse, а eclipse отфильтровывает эти папки. Это делается с помощью "mvn eclipse: eclipse", а также плагина m2eclipse. Остается видимым все, что находится в целевом каталоге, кроме этих двух папок (например, сгенерированный файл jar).

    Вы можете создать фильтр для проводника пакетов, но это не повлияет на «открытый ресурс».

    person Tobias Schulte    schedule 12.11.2008

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

    Протестировано в Eclipse 4.4 (Luna), должно работать так, начиная с 3.7, согласно другим ответам здесь.

    Проводник пакетов

    Меню просмотра проводника пакетовFilters... → отметьте Name filter patterns и введите target.

    Будьте осторожны, это скроет все папки и файлы с именем target, а не только каталог сборки maven по умолчанию! В представлении Project Explorer есть лучший вариант без этой проблемы.

    Меню проводника пакетовДиалоговое окно проводника пакетов

    Обозреватель проекта

    Меню «Просмотр» в Project Explorer → Custom View... → найдите «maven» и отметьте Maven build folder.

    Выбор этого параметра скрывает каталог сборки, как определено в конфигурации проекта pom.xml.

    Меню обозревателя проектаДиалог Project Explorer

    person Community    schedule 26.03.2015
    comment
    К сожалению, это не удаляет его из меню открытого ресурса (ctrl + shift + r) или открытого типа (ctrl + shift + t), что по-прежнему затрудняет навигацию с клавиатуры, но оно отлично работает для представления проводника пакетов - person gwnp; 31.07.2017

    Вы используете плагин Maven для Eclipse?

    Я полагаю, это скроет для вас некоторую часть «загрязнения».

    Это также позволит вам выполнить сборку в Eclipse, то есть одновременно с этим обновится вид проекта.

    Maven 2 Eclipse

    person James Camfield    schedule 12.11.2008
    comment
    Нет, в настоящее время я не использую плагин maven для eclipse, но я попробую. - person paulgreg; 12.11.2008
    comment
    Я использую его, но он не скрывает содержимое целевой папки. Мне подходит техника Derived. - person Hendy Irawan; 26.04.2011

    Использование фильтра ресурсов решает проблему, если вы часто используете «mvn clean install».

    По сути, он будет добавлять «цель» и подпапки, чтобы исключить папку непосредственно в файл .project. После запуска этого сценария, если вы импортируете проект в eclipse, вы можете увидеть параметр «Проект» -> «Свойства» -> «Ресурс» -> «Фильтры ресурсов». Раньше всякий раз, когда я запускал mvn clean install, eclipse занимал 50% моего процессора, но теперь он остается ниже 5% во время проекта сборки.


    function eclipse-setup() {
         mvn eclipse:clean
         mvn eclipse:eclipse
         #maven target folders
         find . -name .project -exec sed -i.MSORG 's/<\/projectDescription>/<filteredResources> <filter> <id>1314376338264<\/id> <name><\/name> <type>26
    <\/type> <matcher> <id>org.eclipse.ui.ide.multiFilter<\/id> <arguments>1.0-name-matches-false-false-target<\/arguments> <\/matcher> <\/filter> <filt
    er> <id>1314387234341<\/id> <name><\/name> <type>6<\/type> <matcher> <id>org.eclipse.ui.ide.multiFilter<\/id> <arguments>1.0-name-matches-false-fals
    e-*.cache.html<\/arguments> <\/matcher> <\/filter> <\/filteredResources><\/projectDescription>/' {} \;
    
    }
    
    person Who Mobile    schedule 26.08.2011

    Когда Eclipse зависает, глядя на активность процесса, я вижу, что он просматривает все мои целевые каталоги, .hg и .git. Более того, эти каталоги также копируются в каталог bin Eclipse. Зря много использует процессор и диск.

    Отказ от очистки целевого каталога не является приемлемым решением.

    Было решение с использованием сценария Monkey (http://maven.40175.n5.nabble.com/Eclipse-amp-target-directory-td72354.html), но проект был закрыт.

    Я все еще ищу решение, чтобы Eclipse игнорировал целевые каталоги Maven, а также каталоги .hg и .git.

    Затмение, постоянно наблюдающее за ними, - это боль.

    Я также использую m2eclipse, но это не решает эту проблему.

    person Julien Carsique    schedule 11.05.2011
    comment
    Попробуйте плагин KeepTargetDerivedPlugin: sourceforge.net/projects/etinyplugins/files/ - person Dan Dar3; 09.06.2014