Каков «правильный» способ (временно) исключить источники из сборки maven, и есть ли простой способ сделать это из Eclipse? - PullRequest
4 голосов
/ 25 января 2011

Я новичок в Maven, и у меня нет большого опыта работы с Eclipse.

Чтобы исключить Java-файлы из сборки в Eclipse, я щелкаю правой кнопкой мыши по файлам и выбираю Build Path -> Exclude. Это прекрасно работает для компиляции «при сохранении» в Eclipse, но не распространяется на проект maven, поэтому, когда я собираю свой проект с помощью mvn install, он пытается скомпилировать исключенные источники.

Я сделал несколько поисков, и результаты указывают мне на плагин компилятора и функциональность , но редактирование файлов проекта maven для временного исключения файла из сборки кажется немного неловким.

Каков «правильный» способ (временно) исключить источники из сборки maven, и есть ли простой способ сделать это из Eclipse, через плагин m2eclipse или иным способом?

Ответы [ 2 ]

7 голосов
/ 27 января 2011

Вы можете использовать параметр <<a href="http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#excludes" rel="noreferrer"> exclude > в плагине Maven Compiler для временного исключения файлов из компиляции.

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <excludes>
                    <exclude>**/model/*.java</exclude>
                </excludes>
            </configuration>
        </plugin>

Если вы используете плагин M2Eclipse и запускаете Maven-> Обновить конфигурацию проекта, исключенные файлы в pom также должны автоматически исключаться из компиляции Eclipse.

0 голосов
/ 26 января 2011

если вы выберете maven для управления проектами, то вам действительно придется сделать это "maven way".

Eclipse создает проект на основе пути к классам, указанного в свойствах проекта, и не относится к пути к классам подключаемого модуля компилятора maven. «mvn compile» управляется только конфигурацией плагина компилятора.

Обычно эти «временные» изменения обрабатываются параметрами JVM, добавляемыми к цели maven (плагин maven / цель Mojo, которую вы запускаете из cmd), которую вы создаете (пользовательскую) и сохраняете в «Запуск от имени»> Запустить конфигурации ". Я использую командную строку (оболочку), а не m2eclipse для Maven. меняются параметры быстрее для меня.

Чтобы узнать, какие параметры вы можете использовать, вы можете либо указать конкретный Mojo (плагин maven) в ваших maven-зависимостях (просто временно) и посмотреть на его источники прямо в eclipse, вы можете увидеть параметры, которые можно указать через " -D "параметры JVM. Или вы можете проверить документацию.

В плагине компилятора есть параметр private Set<String> excludes = new HashSet<String>();, но, к сожалению, параметры коллекции не могут быть заданы в качестве параметров JVM ... Таким образом, единственная оставленная опция - настроить объявление плагина в pom.xml.

Тогда есть также профили, но они не пригодны для этого случая.

Подводя итог, ваше требование довольно редкое, исключение java-класса из компиляции не является обычным требованием.

Надеюсь, это поможет

...