2012-04-20 2 views
0

EDIT: решаемые я настроил его два раза в П ..как остановить Maven-antrun-плагин от выполнения тестов

Я настраиваю производственный-профиль в мавена. И чтобы скопировать правильные файлы production.properties и удалить стандартные, я использую maven-antrun-plugin.

Но я не хочу запускать какие-либо тесты. И по какой-то причине этот плагин пытается запустить некоторые canoo-web-тесты, которые не работают (и не должны работать, потому что они никогда не используются).

Любые идеи о том, как получить плагин antrun для ТОЛЬКО копировать файлы?

Вот код antrun:

    <plugin> 
        <artifactId>maven-antrun-plugin</artifactId> 
        <executions> 
         <execution> 
          <phase>package</phase> 
          <goals> 
           <goal>run</goal> 
          </goals> 
          <configuration> 
           <tasks> 
            <delete file="${project.build.outputDirectory}/properties/externalResources.properties"/> 
            <delete file="${project.build.outputDirectory}/properties/externalResources.prod.properties"/> 
            <copy file="src/main/resources/properties/externalResources.prod.properties" 
              tofile="${project.build.outputDirectory}/properties/externalResources.properties"/> 
           </tasks> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 

И здесь показывает ошибку он пытается сделать некоторые испытания:

[INFO] Executing tasks 
[delete] Deleting: C:\xxx\target\classes\properties\externalResources.properties 
[delete] Deleting: C:\xxx\target\classes\properties\externalResources.prod.properties 
[copy] Copying 1 file to C:\xxx\target\classes\properties 
Trying to override old definition of task retry 
[echo] Testing 'XXX-1.2.0' with 
[echo]                  locale 'no' 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 

А потом является StackTrace показывая, что он пытается читать web- tests.xml, и поскольку этот файл имеет ошибки, сборка не выполняется.

+0

Возможно, пропуская тесты помогут: http://maven.apache.org/plugins/maven-surefire-plugin/examples/skipping-test.html –

+0

Я понял это. Я сконфигурировал его на тестах ранее .. Глупо мне .. – user829237

ответ

0

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

. 
|-- pom.xml 
`-- src 
    |-- main 
    | |-- java 
    | |-- resources 
    | |-- environment 
    | | |-- test 
    | | | `-- database.properties 
    | | |-- qa 
    | | | `-- database.properties 
    | | `-- production 
    | |  `-- database.properties 
    | `-- webapp 

Это пример для веб-приложения, но будет работать на любой артефакт, как банку, уха и т.д. Кроме того, нужно конфигурацию различных областей в вашем ПОМ:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <executions> 
     <execution> 
     <id>test</id> 
     <phase>package</phase> 
     <goals> 
      <goal>single</goal> 
     </goals> 
     <configuration> 
      <descriptors> 
      <descriptor>${project.basedir}/src/main/assembly/test.xml</descriptor> 
      </descriptors> 
     </configuration> 
     </execution> 
     <execution> 
     <id>qa</id> 
     <phase>package</phase> 
     <goals> 
      <goal>single</goal> 
     </goals> 
     <configuration> 
      <descriptors> 
      <descriptor>${project.basedir}/src/main/assembly/qa.xml</descriptor> 
      </descriptors> 
     </configuration> 
     </execution> 
     <execution> 
     <id>production</id> 
     <phase>package</phase> 
     <goals> 
      <goal>single</goal> 
     </goals> 
     <configuration> 
      <descriptors> 
      <descriptor>${project.basedir}/src/main/assembly/production.xml</descriptor> 
      </descriptors> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

в то время как каждый дескриптор содержит соответствующую папку:

<id>test</id> 
    <formats> 
    <format>war</format> 
    </formats> 
    <includeBaseDirectory>false</includeBaseDirectory> 
    <dependencySets> 
    <dependencySet> 
     <unpack>true</unpack> 
     <useProjectArtifact>true</useProjectArtifact> 
    </dependencySet> 
    </dependencySets> 
    <fileSets> 
    <fileSet> 
     <outputDirectory>WEB-INF</outputDirectory> 
     <directory>${basedir}/src/main/environment/test/</directory> 
     <includes> 
     <include>**</include> 
     </includes> 
    </fileSet> 
    </fileSets> 
</assembly> 

Это приведет к простому пробеге Maven МВН чистый пакет и будет производить различные артефакты (с CLA ssifier) ​​для каждой среды. Подробное объяснение можно найти here.