0

I했습니다있어 내 pom.xml 파일에 다음과 같은 구성cobertura-받는다는 - 플러그인과 카산드라 - 받는다는 - 플러그인 cassandra.rpcPort 다를 수 원인

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>build-helper-maven-plugin</artifactId> 
      <version>1.8</version> 
      <executions> 
       <execution> 
        <id>reserve-network-port</id> 
        <goals> 
         <goal>reserve-network-port</goal> 
        </goals> 
        <phase>process-resources</phase> 
        <configuration> 
         <portNames> 
          <portName>cassandra.rpcPort</portName> 
          <portName>cassandra.jmxPort</portName> 
          <portName>cassandra.storagePort</portName> 
          <portName>cassandra.stopPort</portName> 
         </portNames> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.12</version> 
      <executions> 
       <execution> 
        <phase>integration-test</phase> 
        <goals> 
         <goal>test</goal> 
        </goals> 
        <configuration> 
         <enableAssertions>true</enableAssertions> 
         <excludes> 
          <exclude>none</exclude> 
         </excludes> 
         <includes> 
          <include>**/integration/**/*Test.java</include> 
         </includes> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>cassandra-maven-plugin</artifactId> 
      <version>1.2.1-1</version> 
      <executions> 
       <execution> 
        <id>start-cassandra</id> 
        <phase>pre-integration-test</phase> 
        <goals> 
         <goal>start</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>stop-cassandra</id> 
        <phase>post-integration-test</phase> 
        <goals> 
         <goal>stop</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>cobertura-maven-plugin</artifactId> 
      <version>2.5.1</version> 
      <executions> 
       <execution> 
        <phase>test</phase> 
        <goals> 
         <goal>cobertura</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <formats> 
        <format>html</format> 
        <format>xml</format> 
       </formats> 
      </configuration> 
     </plugin> 

    <testResources> 
     <testResource> 
      <directory>src/test/resources</directory> 
      <includes> 
       <include>*.*</include> 
      </includes> 
      <filtering>true</filtering> 
     </testResource> 
    </testResources> 

및 특성 파일이이 라인 cassandra_host = 127.0 .0.1 : $ {cassandra.rpcPort}

이 코드는이 속성을 사용하여 cassandra 인스턴스에 연결합니다. 따라서 mvn 새로 설치를 실행할 때마다 cassandra.rpcPort가 두 번 생성됩니다. 하나는 나머지가 실행될 때이고, 하나는 cobertura가 실행될 때 생성됩니다. 예.

[INFO] Reserved port 60315 for cassandra.rpcPort 
[INFO] Reserved port 60316 for cassandra.jmxPort 
[INFO] Reserved port 60317 for cassandra.storagePort 
[INFO] Reserved port 60318 for cassandra.stopPort 
다음

cobertura 실행,

[INFO] Reserved port 60319 for cassandra.rpcPort 
[INFO] Reserved port 60320 for cassandra.jmxPort 
[INFO] Reserved port 60321 for cassandra.storagePort 
[INFO] Reserved port 60322 for cassandra.stopPort 

그리고 그것은 카산드라 - 받는다는 - 플러그인 rpc_port이 대상/카산드라/conf의/cassandra.yaml 파일 생성 : 60,315 (기원 포트와하지를 cobertura에서 하나). 그러나 특성 파일에는 cobertura가 생성 한 포트 값이 있습니다.

cobertura 플러그인을 사용하지 않으면 모든 것이 성공적으로 실행됩니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까?

감사 & 관련 주석

답변

0

OK, 나는 위상 패키지 준비하는 빌드 - 도우미 - 받는다는 - 플러그인을 이동하여 문제를 해결하고 다음

<plugin> 
       <artifactId>maven-resources-plugin</artifactId> 
       <version>2.7</version> 
       <executions> 
        <execution> 
         <id>copy-test-resources</id> 
         <phase>pre-integration-test</phase> 
         <goals> 
          <goal>copy-resources</goal> 
         </goals> 
         <configuration> 
          <outputDirectory>${project.build.testOutputDirectory}</outputDirectory> 
          <resources> 
           <resource> 
            <directory>${project.basedir}/src/test/resources</directory> 
            <includes> 
             <include>*.properties</include> 
            </includes> 
            <filtering>true</filtering> 
           </resource> 
          </resources> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 

이 방법을 추가했습니다 cobertura 플러그인은 이미 완료되었으며 네트워크 포트는 한 번만 검색/예약됩니다. 희망이 미래에 누군가를 도울 수 있습니다.