2015-06-25 3 views
0

У меня есть исходный класс данных, который должен быть исключен в стандартной (по умолчанию профиле) сборке. Если я укажу, например, профиль прогона, который должен быть включен в этот класс. Кроме того, этот тест необходим для тестирования. Поэтому он должен быть включен во все тим.Как включить исключенный исходный файл для тестов?

Я использовал исключает для достижения первой части, но зависимость от теста ломает testCompile цели.

<plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <executions> 
     <execution> 
      <id>default-compile</id> 
      <goals> 
       <goal>compile</goal> 
      </goals> 
      <configuration> 
       <excludes> 
        <exclude>**/InitialDataBuilder.java</exclude> 
       </excludes> 
      </configuration> 
     </execution> 
     <execution> 
      <id>default-testCompile</id> 
      <goals> 
       <goal>testCompile</goal> 
      </goals> 
      <configuration> 
       <testIncludes> 
        <include>**/*.java</include> 
       </testIncludes> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Что не так с моей конфигурацией?
Невозможно включить исключенный исходный файл для тестов?

ответ

0

Структура каталогов Maven позволяет легко разделить исходный/производственный код и тестовый код.

Детали того, как макет проекта объясняются здесь: https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

В принципе, вы кладете производство код:

src/main/java 

Теста код идет в:

src/test/java 

дерево тестовых кодов должно включать в себя фактические модульные тесты и поддерживающие классы. Таким образом, код, который вы описали, принадлежит. Это будет только в тестовой банке, а не в баке.

Также, если вы это сделаете, вам не нужно возиться с настройками плагина компилятора. Значения по умолчанию будут делать то, что вы ожидаете.

О, еще одна вещь, которую я должен упомянуть, заключается в том, что если это необходимо для другого профиля, вы, вероятно, должны сделать его собственным модулем maven с собственным POM-файлом. Тогда этот класс может ссылаться на него как на зависимость <scope>test</scope>, а на другой - на зависимость от производства.