2016-08-31 60 views
1

在我的Maven Web項目,CXF-CODEGEN-插件生成Java類並將其保存在文件夾中Maven的(使用Maven插件)加入生成的文件夾作爲源文件夾,的IntelliJ不承認

${basedir}/src/generated 

我使用這些生成的類,在我的Java類中

src/main/java 

我使用的IntelliJ IDE和IntelliJ似乎並沒有認識到

${basedir}/src/generated 

作爲一個源文件夾(和正確的)。

我的問題是我怎樣才能同時獲得Maven和IntelliJ來識別生成的文件夾作爲源文件夾。

我的項目結構是

. 
    ├── HOWTO.txt 
    ├── pom.xml 
    ├── src 
    │   ├── generated 
    │   │   └── com 
    │   │    └── bharath 
    │   │     └── ws 
    │   │      └── trainings 
    │   │       ├── CreateOrdersRequest.java 
    │   │       ├── CreateOrdersResponse.java 
    │   │       ├── CustomerOrdersPortType.java 
    │   │       ├── CustomerOrdersService.java 
    │   │       ├── GetOrdersRequest.java 
    │   │       ├── GetOrdersResponse.java 
    │   │       ├── ObjectFactory.java 
    │   │       ├── Order.java 
    │   │       ├── Product.java 
    │   │       └── package-info.java 
    │   ├── main 
    │   │   ├── java 
    │   │   │   └── com 
    │   │   │    └── bharath 
    │   │   │     └── ws 
    │   │   │      └── trainings 
    │   │   │       └── impl 
    │   │   │        └── CustomersOrdersWSImpl.java 
    │   │   └── webapp 
    │   │    ├── WEB-INF 
    │   │    │   ├── cxf-servlet.xml 
    │   │    │   ├── web.xml 
    │   │    │   └── wsdl 
    │   │    │    └── CustomerOrders.wsdl 
    │   │    └── index.jsp 
    │   └── test 
    │    └── java 
    ├── target 
    │   ├── classes 
    │   │   └── com 
    │   │    └── bharath 
    │   │     └── ws 
    │   │      └── trainings 
    │   │       ├── CreateOrdersRequest.class 
    │   │       ├── CreateOrdersResponse.class 
    │   │       ├── CustomerOrdersPortType.class 
    │   │       ├── CustomerOrdersService.class 
    │   │       ├── GetOrdersRequest.class 
    │   │       ├── GetOrdersResponse.class 
    │   │       ├── ObjectFactory.class 
    │   │       ├── Order.class 
    │   │       ├── Product.class 
    │   │       ├── impl 
    │   │       │   └── CustomersOrdersWSImpl.class 
    │   │       └── package-info.class 
    │   ├── cxf-codegen-plugin-markers 
    │   ├── generated-sources 
    │   │   └── annotations 
    │   ├── maven-archiver 
    │   │   └── pom.properties 
    │   ├── maven-status 
    │   │   └── maven-compiler-plugin 
    │   │    ├── compile 
    │   │    │   └── default-compile 
    │   │    │    ├── createdFiles.lst 
    │   │    │    └── inputFiles.lst 
    │   │    └── testCompile 
    │   │     └── default-testCompile 
    │   │      └── inputFiles.lst 
    │   ├── surefire 
    │   ├── wsdlfirstws 
    │   │   ├── META-INF 
    │   │   ├── WEB-INF 
    │   │   │   ├── classes 
    │   │   │   │   └── com 
    │   │   │   │    └── bharath 
    │   │   │   │     └── ws 
    │   │   │   │      └── trainings 
    │   │   │   │       ├── CreateOrdersRequest.class 
    │   │   │   │       ├── CreateOrdersResponse.class 
    │   │   │   │       ├── CustomerOrdersPortType.class 
    │   │   │   │       ├── CustomerOrdersService.class 
    │   │   │   │       ├── GetOrdersRequest.class 
    │   │   │   │       ├── GetOrdersResponse.class 
    │   │   │   │       ├── ObjectFactory.class 
    │   │   │   │       ├── Order.class 
    │   │   │   │       ├── Product.class 
    │   │   │   │       ├── impl 
    │   │   │   │       │   └── CustomersOrdersWSImpl.class 
    │   │   │   │       └── package-info.class 
    │   │   │   ├── cxf-servlet.xml 
    │   │   │   ├── lib 
    │   │   │   │   ├── aopalliance-1.0.jar 
    │   │   │   │   ├── asm-3.3.1.jar 
    │   │   │   │   ├── commons-codec-1.2.jar 
    │   │   │   │   ├── commons-httpclient-3.1.jar 
    │   │   │   │   ├── commons-logging-1.1.1.jar 
    │   │   │   │   ├── cxf-core-3.0.2.jar 
    │   │   │   │   ├── cxf-rt-bindings-soap-3.0.2.jar 
    │   │   │   │   ├── cxf-rt-bindings-xml-3.0.2.jar 
    │   │   │   │   ├── cxf-rt-databinding-jaxb-3.0.2.jar 
    │   │   │   │   ├── cxf-rt-frontend-jaxws-3.0.2.jar 
    │   │   │   │   ├── cxf-rt-frontend-simple-3.0.2.jar 
    │   │   │   │   ├── cxf-rt-security-3.0.2.jar 
    │   │   │   │   ├── cxf-rt-transports-http-3.0.2.jar 
    │   │   │   │   ├── cxf-rt-transports-http-jetty-3.0.2.jar 
    │   │   │   │   ├── cxf-rt-ws-addr-3.0.2.jar 
    │   │   │   │   ├── cxf-rt-ws-policy-3.0.2.jar 
    │   │   │   │   ├── cxf-rt-ws-security-3.0.2.jar 
    │   │   │   │   ├── cxf-rt-wsdl-3.0.2.jar 
    │   │   │   │   ├── ehcache-2.8.3.jar 
    │   │   │   │   ├── geronimo-javamail_1.4_spec-1.7.1.jar 
    │   │   │   │   ├── geronimo-servlet_3.0_spec-1.0.jar 
    │   │   │   │   ├── jasypt-1.9.2.jar 
    │   │   │   │   ├── jaxb-core-2.2.10-b140310.1920.jar 
    │   │   │   │   ├── jaxb-impl-2.2.10-b140310.1920.jar 
    │   │   │   │   ├── jetty-continuation-8.1.15.v20140411.jar 
    │   │   │   │   ├── jetty-http-8.1.15.v20140411.jar 
    │   │   │   │   ├── jetty-io-8.1.15.v20140411.jar 
    │   │   │   │   ├── jetty-security-8.1.15.v20140411.jar 
    │   │   │   │   ├── jetty-server-8.1.15.v20140411.jar 
    │   │   │   │   ├── jetty-util-8.1.15.v20140411.jar 
    │   │   │   │   ├── joda-time-2.2.jar 
    │   │   │   │   ├── neethi-3.0.3.jar 
    │   │   │   │   ├── opensaml-2.6.1.jar 
    │   │   │   │   ├── openws-1.5.1.jar 
    │   │   │   │   ├── slf4j-api-1.7.7.jar 
    │   │   │   │   ├── spring-aop-3.2.0.RELEASE.jar 
    │   │   │   │   ├── spring-beans-3.2.0.RELEASE.jar 
    │   │   │   │   ├── spring-context-3.2.0.RELEASE.jar 
    │   │   │   │   ├── spring-core-3.2.0.RELEASE.jar 
    │   │   │   │   ├── spring-expression-3.2.0.RELEASE.jar 
    │   │   │   │   ├── spring-jdbc-3.2.0.RELEASE.jar 
    │   │   │   │   ├── spring-orm-3.2.0.RELEASE.jar 
    │   │   │   │   ├── spring-tx-3.2.0.RELEASE.jar 
    │   │   │   │   ├── spring-web-3.2.0.RELEASE.jar 
    │   │   │   │   ├── spring-webmvc-3.2.0.RELEASE.jar 
    │   │   │   │   ├── stax2-api-3.1.4.jar 
    │   │   │   │   ├── woodstox-core-asl-4.4.1.jar 
    │   │   │   │   ├── wsdl4j-1.6.3.jar 
    │   │   │   │   ├── wss4j-bindings-2.0.2.jar 
    │   │   │   │   ├── wss4j-policy-2.0.2.jar 
    │   │   │   │   ├── wss4j-ws-security-common-2.0.2.jar 
    │   │   │   │   ├── wss4j-ws-security-dom-2.0.2.jar 
    │   │   │   │   ├── wss4j-ws-security-policy-stax-2.0.2.jar 
    │   │   │   │   ├── wss4j-ws-security-stax-2.0.2.jar 
    │   │   │   │   ├── xml-resolver-1.2.jar 
    │   │   │   │   ├── xmlschema-core-2.1.0.jar 
    │   │   │   │   ├── xmlsec-2.0.2.jar 
    │   │   │   │   └── xmltooling-1.4.1.jar 
    │   │   │   ├── web.xml 
    │   │   │   └── wsdl 
    │   │   │    └── CustomerOrders.wsdl 
    │   │   └── index.jsp 
    │   └── wsdlfirstws.war 
    └── wsdlfirstws.iml 

我還增加了插件構建輔助性Maven的插件(添加其他源文件夾)的基礎上,其他建議的SO答案,但它似乎不工作(至少IntelliJ無法識別它們)在mvn乾淨安裝後。

<plugin> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-codegen-plugin</artifactId> 
     <version>${cxf.version}</version> 
     <executions> 
      <execution> 
       <id>generate-sources</id> 
       <phase>generate-sources</phase> 
       <configuration> 
        <sourceRoot>${basedir}/src/generated</sourceRoot> 
        <wsdlOptions> 
         <wsdlOption> 
          <wsdl>${basedir}/src/main/webapp/WEB-INF/wsdl/CustomerOrders.wsdl</wsdl> 
         </wsdlOption> 
        </wsdlOptions> 
       </configuration> 
       <goals> 
        <goal>wsdl2java</goal> 
       </goals> 
      </execution> 
     </executions> 
    </plugin> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>build-helper-maven-plugin</artifactId> 
     <version>1.7</version> 
     <executions> 
      <execution> 
       <id>add-source</id> 
       <phase>generate-sources</phase> 
       <goals> 
        <goal>add-source</goal> 
       </goals> 
       <configuration> 
        <sources> 
         <source>${basedir}/src/generated</source> 
        </sources> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 
+0

我找到了一個解決方法:IntelliJ(也可能是其他IDE)會識別maven插件默認生成的源目錄。默認生成的源目錄是target/generated/。因此,在這種情況下,請刪除maven插件中的 $ {basedir}/src/generated行,以便在默認文件夾中生成。 – user2977259

回答

0

既然是「非標」的路徑,會的IntelliJ不把它撿起來自動完成,但你可以很容易地解決這個問題是這樣的:

右鍵單擊該文件夾,你的情況src\generated和選擇:

Mark Directory As - >Generated Source Root

你應該看到它變成藍色,下面所有的包(com ...等),應認定爲Java代碼。

+0

謝謝,但我也在尋找一個基於maven的解決方案,可以完成相同的任務。 – user2977259

+0

瞭解這一點,但intellij並不知道maven插件生態系統中的所有插件(例如'cxf-codegen-plugin'),而是依賴於默認設置。有時候,事實上,使用非默認配置可能會更清楚一些,在這種情況下,您需要手動設置它......可能有點煩人,但由於它是「一次性」配置,因此只需配置一次每個maven項目:) – vikingsteve

+0

我得到的IntelliJ無法理解任何非默認配置沒有一些用戶操作。感謝您的幫助伴侶。 – user2977259

相關問題