2014-10-30 3 views
0

У меня есть пакет de.ht.ak.praktikum.hook в проекте, который находится в исходной папке src, но его следует исключить из пути построения. Я использовал это, щелкнув правой кнопкой мыши и выбрав «Путь сборки» -> «Исключить». Поскольку я добавлял maven в проект каждый раз, когда я обновляю проект, исключенная папка снова превращается в пакет, т. Е. Исключение удаляется. Я попытался исправить это следующим образом:Исключить пакет из пути сборки в POM

... 
    <build> 
     <sourceDirectory>src</sourceDirectory> 
     <resources> 
      <resource> 
       <directory>src</directory> 
       <excludes> 
        <exclude>de/ht/ak/praktikum/hook</exclude> 
       </excludes> 
      </resource> 
     </resources> 
    ... 
    </build> 
... 

Я пытался также сделать это, как описано there:

... 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-eclipse-plugin</artifactId> 
     <version>3.1</version> 
     <configuration> 
      <sourceExcludes> 
       <sourceExclude>de/ht/ak/praktikum/hook/</sourceExclude> 
      </sourceExcludes> 
      <sourceIncludes> 
       <sourceInclude>**/*.java</sourceInclude> 
      </sourceIncludes> 
     </configuration> 
    </plugin> 
... 

Однако ни один из обоих методов не поможет. Есть идеи?

+0

Если вы не хотите экспортировать пакет в банку, просто добавьте внутреннее имя пакета, например: de.ht.ak.praktikum.internal.hook – StackFlowed

+0

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

ответ

1

Ваша первая попытка не будет работать, потому что вы указали, что хотите исключить ее как ресурс (т. Е. Те файлы, которые упакованы в ваш результирующий файл JAR - обычно вы не хотите, чтобы исходные файлы были среди них).

Вторая попытка - это на правильном пути. Однако вы хотите исключить их из компиляции, поэтому вам нужно установить the exclude option of the maven-compiler-plugin. Т.е., например:

<build> 
    .. 
    <plugins> 
    .. 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.2</version> 
     <configuration> 
     <excludes> 
      <exclude>de/ht/ak/praktikum/hook/*.java</exclude> 
     </excludes> 
     </configuration> 
    </plugin> 
    .. 
    </plugins> 
</build> 

При обновлении проекта в Eclipse (Maven -> Update Project), Eclipse должны выполнять эту конфигурацию, а также исключить его из Eclipse, внутреннего пути сборки.

+0

Теперь моя POM выглядит как [this] (http://pastie.org/9686444), но это не помогает - папка все еще включена в путь сборки. –

+0

Почему вы не указали спецификатор шаблона подстановки '* .java'? Кроме того, некоторые люди сообщают об успехах с исходной папкой, добавленной к шаблону exclude, а некоторые - без него. Чтобы быть в безопасности, попробуйте поставить '** /' в начале шаблона (т. Е. '**/de/ht/ak/praktikum/hook/*. Java'. – misberner

+0

Я хотел бы исключить Если я использую шаблон шаблона шаблона или нет, то результат тот же. –

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