2017-11-15 9 views
0

나는 maven-wadl-plugin을 시도 중입니다. (the Javadoc 이외에 어떤 문서도 찾지 못했습니다.)Maven 여러 프로젝트에 걸쳐있는 REST API 용 WADL 플러그인

내 프로젝트에는 다른 Maven 모듈 사이의 REST 끝점에 사용되는 클래스가 있습니다. 그리고 WADL 플러그인이 그들에게 다가 갈 수 없을 것 같습니다. 따라서 단일 모듈에서 실행이 실패합니다.

[ERROR] Failed to execute goal 
    com.sun.jersey.contribs:maven-wadl-plugin:1.19.4:generate (generate) 
on project bpds-resources: Execution generate of goal com.sun.jersey.contribs:maven-wadl-plugin:1.19.4:generate 
failed: A required class was missing while executing 
    com.sun.jersey.contribs:maven-wadl-plugin:1.19.4:generate: com/.../common/dto/BoxRequestDto 

플러그인은 루트 프로젝트에서 실행하는 것을 지원하지 않습니다.

1) AFAIK, maven-wadl-plugin은 소스를 구문 분석합니다. 내 프로젝트는 하나의 큰 음영으로 .jar이되므로 플러그인은 내부 종속성을 신경 쓰지 않고 사용할 수 있습니다. 플러그인이 유물을 대신 스캔하도록 할 수 있습니까?

2) 여러 프로젝트에서 작동하도록 만드는 방법이 있습니까?

답변

0

스캔 된 모듈에 프로젝트 종속성을 추가하는 것이 효과가 있다는 것을 알았습니다. DTO 클래스에 속성을 추가 했으므로 이제 작동합니다.

<build> 
    <plugins> 
     <plugin> 
      <groupId>com.sun.jersey.contribs</groupId> 
      <artifactId>maven-wadl-plugin</artifactId> 
      <version>1.19.4</version> 
      <dependencies> 
       <dependency> 
        <groupId>org.glassfish.jersey.core</groupId> 
        <artifactId>jersey-server</artifactId> 
        <version>2.25.1</version> 
       </dependency> 
       <dependency> 
        <groupId>com.fasterxml.jackson.jaxrs</groupId> 
        <artifactId>jackson-jaxrs-json-provider</artifactId> 
        <version>2.8.10</version> 
       </dependency> 
       <dependency> 
        <groupId>org.glassfish.jersey.media</groupId> 
        <artifactId>jersey-media-multipart</artifactId> 
        <version>2.25.1</version> 
       </dependency> 
       <dependency> 
        <groupId>com.mycompany.bpds</groupId> 
        <artifactId>bpds-common</artifactId> 
        <version>${project.version}</version> 
       </dependency> 
      </dependencies> 
      <executions> 
       <execution> 
        <id>generate</id> 
        <goals> 
         <goal>generate</goal> 
        </goals> 
        <phase>package</phase> 

        <configuration> 
         <wadlFile>${project.build.directory}/endpoints.wadl</wadlFile> 
         <formatWadlFile>true</formatWadlFile> 
         <baseUri>http://localhost:9021/</baseUri> 
         <packagesResourceConfig> 
          <param>com.mycompany.rest</param> 
         </packagesResourceConfig> 
         <wadlGenerators> 
          <!-- Doesn't work wit current version of Xerces. 
          <wadlGeneratorDescription> 
           <className>com.sun.jersey.server.wadl.generators.WadlGeneratorApplicationDoc</className> 
           <properties> 
            <property> 
             <name>applicationDocsFile</name> 
             <value>${project.build.directory}/app-wadl-doc.xml</value> 
            </property> 
           </properties> 
          </wadlGeneratorDescription> 
          <wadlGeneratorDescription> 
           <className>com.sun.jersey.server.wadl.generators.WadlGeneratorGrammarsSupport</className> 
           <properties> 
            <property> 
             <name>grammarsFile</name> 
             <value>${project.build.directory}/app-wadl-grammar.xml</value> 
            </property> 
           </properties> 
          </wadlGeneratorDescription> 
          --> 
         </wadlGenerators> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin>