2017-03-03 52 views
0

我無法管理運行spring-cloud-contract:generateTests以在未明確指定maven命令行中的目標的情況下運行。下面是pom.xml中的插件配置:無法將彈簧雲合同maven插件附加到生命週期階段

<!-- Contract Driven Testing --> 
      <plugin> 
       <groupId>org.springframework.cloud</groupId> 
       <artifactId>spring-cloud-contract-maven-plugin</artifactId> 
       <version>${spring-cloud-contract.version}</version> 
       <!-- Don't forget about this value !! --> 
       <extensions>true</extensions> 
       <configuration> 
       <!-- Provide the base class for your auto-generated tests --> 
       <packageWithBaseClasses>cdc</packageWithBaseClasses> 
       </configuration> 
       <executions> 
        <execution> 
         <id>spring-cloud-generateTests</id> 
         <goals> 
          <goal>generateTests</goal> 
         </goals> 
        </execution> 
       </executions> 

       <dependencies> 
       <dependency> 
        <groupId>org.springframework.cloud</groupId> 
        <artifactId>spring-cloud-contract-verifier</artifactId> 
        <version>${spring-cloud-contract.version}</version> 
       </dependency> 
       </dependencies> 
      </plugin> 

當我運行mvn clean install測試都不會產生,但明確指定目標滿足目標。

這裏是全pom.xml中:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.1.RELEASE</version> 
</parent> 

<groupId>tr.gov.tubitak.bilgem.yte.maliye</groupId> 
<artifactId>maliye-muhasebeislemleri</artifactId> 
<packaging>jar</packaging> 
<version>0.0.1-SNAPSHOT</version> 
<name>maliye-muhasebeislemleri Maven Webapp</name> 
<url>http://maven.apache.org</url> 
<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <!-- Database Dependencies --> 
    <h2.version>1.4.190</h2.version> 
    <!-- Testing Dependencies --> 
    <postgresql.version>9.4.1207</postgresql.version> 
    <start-class>tr.gov.tubitak.bilgem.yte.maliye.Application</start-class> 
    <spring-cloud-contract.version>1.0.4.BUILD-SNAPSHOT</spring-cloud-contract.version> 
</properties> 

<distributionManagement> 
    <repository> 
     <id>nexus</id> 
     <name>Internal Releases</name> 
     <url>http://yte-nexus:8081/nexus/content/repositories/releases/</url> 
    </repository> 
    <snapshotRepository> 
     <id>nexus</id> 
     <name>Internal Releases</name> 
     <url>http://yte-nexus:8081/nexus/content/repositories/snapshots/</url> 
    </snapshotRepository> 
</distributionManagement> 
<dependencyManagement> 
    <dependencies> 
    <!-- If you're adding this dependency explicitly you have to add it *BEFORE* 
     the Release Train BOM --> 
    <dependency> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-contract-dependencies</artifactId> 
     <version>${spring-cloud-contract.version}</version> 
     <type>pom</type> 
     <scope>import</scope> 
    </dependency> 
    </dependencies> 
</dependencyManagement> 
<dependencies> 
    <!-- Testing Dependencies --> 
    <dependency> 
     <groupId>org.powermock</groupId> 
     <artifactId>powermock-api-mockito</artifactId> 
     <version>1.6.4</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.jmockit</groupId> 
     <artifactId>jmockit</artifactId> 
     <version>1.8</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>${junit.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.mockito</groupId> 
     <artifactId>mockito-all</artifactId> 
     <version>${mockito.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>tr.gov.tubitak.bilgem.yte.maliye</groupId> 
     <artifactId>mb-testutils</artifactId> 
     <version>0.1.6-RELEASE</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-starter-contract-verifier</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-contract-wiremock</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-starter-contract-stub-runner</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <!-- Required by contract tests --> 
    <dependency> 
     <groupId>org.apache.maven</groupId> 
     <artifactId>maven-model</artifactId> 
     <version>3.3.9</version> 
     <scope>test</scope> 
    </dependency> 
    <!-- MGM-CORE Dependencies --> 
    <dependency> 
     <groupId>tr.gov.tubitak.bilgem.yte.maliye</groupId> 
     <artifactId>mb-core</artifactId> 
     <version>0.10.2-RELEASE</version> 
    </dependency> 
    <!-- Database Dependencies --> 
    <dependency> 
     <groupId>com.h2database</groupId> 
     <artifactId>h2</artifactId> 
     <version>${h2.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <!-- POSTGRES --> 
    <dependency> 
     <groupId>org.postgresql</groupId> 
     <artifactId>postgresql</artifactId> 
     <version>${postgresql.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jacoco</groupId> 
     <artifactId>jacoco-maven-plugin</artifactId> 
     <version>0.7.6.201602180812</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 
<build> 
    <finalName>maliye-muhasebeislemleri</finalName> 
    <resources> 
     <resource> 
      <directory>${basedir}/src/main/java</directory> 
     </resource> 
     <resource> 
      <directory>${basedir}/src/main/resources</directory> 
      <filtering>true</filtering> 
     </resource> 
    </resources> 
    <testResources> 
     <testResource> 
      <directory>${project.basedir}/src/test/java</directory> 
      <excludes> 
       <exclude>**/*.java</exclude> 
      </excludes> 
     </testResource> 
     <testResource> 
      <directory>${project.basedir}/src/test/resources</directory> 
     </testResource> 
     <testResource> 
      <directory>${project.basedir}/target/generated-test-sources</directory> 
      <excludes> 
       <exclude>**/*.java</exclude> 
      </excludes> 
     </testResource> 
    </testResources> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <dependencies> 
        <dependency> 
         <groupId>org.springframework</groupId> 
         <artifactId>springloaded</artifactId> 
         <version>${spring-loaded.version}</version> 
        </dependency> 
       </dependencies> 
       <configuration> 
        <mainClass>${start-class}</mainClass> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>tr.gov.tubitak.bilgem.yte.maliye</groupId> 
       <artifactId>mb-automatic-file-creator</artifactId> 
       <version>0.0.1-RELEASE</version> 
       <dependencies> 
        <dependency> 
         <groupId>tr.gov.tubitak.bilgem.yte.maliye</groupId> 
         <artifactId>mb-automatic-file-creator</artifactId> 
         <version>0.0.1-RELEASE</version> 
        </dependency> 
       </dependencies> 
       <configuration> 
        <fName>${packageName}</fName> 
        <directory>${directory}</directory> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.3</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
        <showWarnings>true</showWarnings> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>tr.gov.tubitak.bilgem.yte.maliye</groupId> 
       <artifactId>mb-veriaktarim-maven-plugin</artifactId> 
       <version>0.2.8-SNAPSHOT</version> 
       <configuration> 
        <driver>${db.driver}</driver> 
        <datasetDir>db-changelog/veri/</datasetDir> 
        <jdbcUrl>${db.url}</jdbcUrl> 
        <dbUser>${db.username}</dbUser> 
        <dbPass>${db.password}</dbPass> 
        <schema>${db.schema}</schema> 
        <ignoredTables> 
         <table>databasechangelog</table> 
         <table>databasechangeloglock</table> 
         <table>cerceve_hesap_kodu</table> 
         <table>hesap_grubu</table> 
        </ignoredTables> 
        <noTruncateTables> 
         <table>kamu_idaresi</table> 
         <table>harcama_birimi</table> 
         <table>muhasebe_birimi</table> 
         <table>muhasebe_fisi</table> 
         <table>ortak_hesap_plani</table> 
         <table>ortak_hesap_kodu</table> 
         <table>kurum_hesap_plani</table> 
         <table>kurum_hesap_kodu</table> 
         <table>son_fis_bilgisi</table> 
         <table>harcama_birimi_devir_bilgisi</table> 
         <table>kurum_hesap_plani_devir_bakiye_bilgisi</table> 
         <table>kurum_hesap_kodu_devir_bakiye_bilgisi</table> 
         <table>ortak_hesap_kodu_grubu_kod</table> 
         <table>ortak_hesap_kodu_grubu</table> 
         <table>ortak_hesap_kodu_iliskisi</table> 
        </noTruncateTables> 
       </configuration> 
       <dependencies> 
        <dependency> 
         <groupId>org.postgresql</groupId> 
         <artifactId>postgresql</artifactId> 
         <version>${postgresql.version}</version> 
        </dependency> 
       </dependencies> 
       <executions> 
        <execution> 
         <id>cleanAndTransferData</id> 
         <phase>prepare-package</phase> 
         <goals> 
          <goal>cleanAndTransferData</goal> 
         </goals> 
        </execution> 
        <execution> 
         <id>exportData</id> 
         <phase>prepare-package</phase> 
         <goals> 
          <goal>exportData</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.15</version> 
       <configuration> 
        <properties> 
         <argLine>-Dfile.encoding=UTF-8</argLine> 
        </properties> 
        <includes> 
         <include>**/*Tests.java</include> 
         <include>**/*Test.java</include> 
         <include>**/Test*.java</include> 
        </includes> 
        <excludes> 
         <exclude>**/Abstract*.java</exclude> 
        </excludes> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.liquibase</groupId> 
       <artifactId>liquibase-maven-plugin</artifactId> 
       <version>3.3.2</version> 
       <configuration> 
        <promptOnNonLocalDatabase>false</promptOnNonLocalDatabase> 
        <changeLogFile>db-changelog/db.changelog-master.xml</changeLogFile> 
        <driver>${db.driver}</driver> 
        <url>${db.url}</url> 
        <username>${db.username}</username> 
        <password>${db.password}</password> 
        <defaultSchemaName>${db.schema}</defaultSchemaName> 
        <contexts>${db.context}</contexts> 
        <migrationSqlOutputFile>db-setting/muhasebe.sql</migrationSqlOutputFile> 
       </configuration> 
       <executions> 
        <execution> 
         <phase>process-resources</phase> 
         <goals> 
          <goal>update</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <!-- JACOCO --> 
      <plugin> 
       <groupId>org.jacoco</groupId> 
       <artifactId>jacoco-maven-plugin</artifactId> 
       <version>0.7.6.201602180812</version> 
       <configuration> 
        <sourceEncoding>UTF-8</sourceEncoding> 
        <outputEncoding>UTF-8</outputEncoding> 
       </configuration> 
       <executions> 
        <execution> 
         <id>jacoco-prepare-agent</id> 
         <goals> 
          <goal>prepare-agent</goal> 
         </goals> 
        </execution> 
        <execution> 
         <id>jacoco-prepare-package</id> 
         <phase>prepare-package</phase> 
         <goals> 
          <goal>report</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <!-- JACOCO --> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-failsafe-plugin</artifactId> 
       <version>2.14</version> 
       <executions> 
        <execution> 
         <id>integration-test</id> 
         <goals> 
          <goal>integration-test</goal> 
          <goal>verify</goal> 
         </goals> 
        </execution> 
        <execution> 
         <id>verify</id> 
         <goals> 
          <goal>verify</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>tr.gov.tubitak.bilgem.yte.maliye</groupId> 
       <artifactId>maliye-kullaniciaktarim-maven-plugin</artifactId> 
       <version>0.2.2-RELEASE</version> 
       <configuration> 
        <securityUrl>${kullaniciAktarim.url}</securityUrl> 
        <mnemonicCode>MHS</mnemonicCode> 
        <clientServicePath>${kullaniciAktarim.istemciUrl}</clientServicePath> 
        <serviceName>muhasebe_islemleri</serviceName> 
        <userRoleFile>src/main/resources/security/UserRole.xml</userRoleFile> 
        <rolePermissionFile>src/main/resources/security/RolePermission.xml</rolePermissionFile> 
        <sqlOutFile>db-setting/kullanici.sql</sqlOutFile> 
       </configuration> 
      </plugin> 
      <!-- Contract Driven Testing --> 
      <plugin> 
       <groupId>org.springframework.cloud</groupId> 
       <artifactId>spring-cloud-contract-maven-plugin</artifactId> 
       <version>${spring-cloud-contract.version}</version> 
       <!-- Don't forget about this value !! --> 
       <extensions>true</extensions> 
       <configuration> 
       <!-- Provide the base class for your auto-generated tests --> 
       <packageWithBaseClasses>cdc</packageWithBaseClasses> 
       </configuration> 
       <executions> 
        <execution> 
         <id>spring-cloud-generateTests</id> 
         <phase>compile</phase> 
         <goals> 
          <goal>generateTests</goal> 
         </goals> 
        </execution> 
       </executions> 
       <dependencies> 
       <dependency> 
        <groupId>org.springframework.cloud</groupId> 
        <artifactId>spring-cloud-contract-verifier</artifactId> 
        <version>${spring-cloud-contract.version}</version> 
       </dependency> 
       </dependencies> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 

<profiles> 
    <profile> 
     <id>development</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <properties> 
      <spring.profiles.active>development</spring.profiles.active> 
      <build.profile.id>dev</build.profile.id> 
      <db.url>jdbc:postgresql://localhost:5432/maliye_muhasebeislemleri</db.url> 
      <db.driver>org.postgresql.Driver</db.driver> 
      <db.username>maliye_muhasebeislemleri</db.username> 
      <db.password>Aa123456</db.password> 
      <db.schema>public</db.schema> 
      <db.context>development</db.context> 
      <kullaniciAktarim.url>http://localhost:8080/maliye-kullanici/kullanici/kullanicilariGuncelle</kullaniciAktarim.url> 
      <kullaniciAktarim.istemciUrl>http://localhost:8080/muhasebe</kullaniciAktarim.istemciUrl> 
     </properties> 
    </profile> 
    <profile> 
     <id>test</id> 
     <properties> 
      <spring.profiles.active>test</spring.profiles.active> 
      <build.profile.id>test</build.profile.id> 
      <db.url>jdbc:postgresql://mgm-01:5432/maliye?current=maliye_muhasebeislemleri</db.url> 
      <db.driver>org.postgresql.Driver</db.driver> 
      <db.username>maliye_muhasebeislemleri</db.username> 
      <db.password>Aa123456</db.password> 
      <db.schema>maliye_muhasebeislemleri</db.schema> 
      <db.context>test</db.context> 
      <kullaniciAktarim.url>http://mgm-10:8080/maliye-kullanici/kullanici/kullanicilariGuncelle</kullaniciAktarim.url> 
      <kullaniciAktarim.istemciUrl>http://mgm-09:80/muhasebe</kullaniciAktarim.istemciUrl> 
     </properties> 
    </profile> 

</profiles> 

+0

請將您的示例上傳到某處,以便我們可以查看此內容。 Github似乎是一個好地方發佈 –

+0

這裏:[spring-contract-tests](https://github.com/cokutan/spring-contract-tests) –

+1

根據你的例子,插件是在pluginManagement中定義的。這應該定義版本和參數,但是你也需要在插件區域定義插件,否則它不會被綁定到生命週期。 – khmarbaise

回答

0

我試圖運行你的例子,但它無法編譯由於缺少依賴。不管怎麼說@khmarbaise說完全有效。使用Maven,您必須在<build><plugins>部分設置一個插件。如果只有在<pluginManagement>部分纔有,那麼它將不起作用。您可以查看Spring Cloud合同示例,其中一切正常,設置良好 - https://github.com/spring-cloud-samples/spring-cloud-contract-samples/blob/master/producer/pom.xml#L73-L103

+0

是的,這是行得通的。感謝您的幫助。 –

相關問題