2016-08-31 3 views
1

In meinem Maven Webprojekt, cxf-CODEGEN-Plugin erzeugt Klassen JAVA zu erkennen und legt sie in den OrdnerMaven hinzufügen erzeugte Ordner als Quellordner (Maven Plugin), nicht IntelliJ

${basedir}/src/generated 

ich diese verwende generierten Klassen, in meinen Java-Klassen in

src/main/java 

ich benutze IntelliJ IDE und IntelliJ scheinen nicht die

${basedir}/src/generated 
zu erkennen

als Quellordner (und das zu Recht).

Meine Frage ist, wie bekomme ich Maven und IntelliJ, die generierten Ordner als Quellordner zu erkennen.

Meine Projektstruktur ist

. 
    ├── 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 

ich auch die Plugin Build-Helfer-Maven-Plugin hinzugefügt (fügen Sie eine weiteren Quellordner), basierend auf andere vorgeschlagenen SO Antworten, aber es scheint nicht zu funktionieren (zumindest erkennt IntelliJ sie nicht) nach einer mvn clean-Installation.

<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

Ich fand eine Abhilfe Lösung: IntelliJ (und möglicherweise auch andere IDEs) würde das standardmäßig generierte Quellverzeichnis von Maven Plugins erkennen. Das standardmäßig generierte Quellverzeichnis ist target/generated/. Also lösche in diesem Fall die Zeile $ {basedir}/src/generierte im Maven-Plugin, so dass es im Standardordner erzeugt wird. – user2977259

Antwort

0

Da es ein „Nicht-Standard“ Weg ist, intellij wird es nicht automatisch abholen, aber man kann es beheben leicht wie folgt aus:

rechts auf den Ordner klicken, in Ihrem Fall src\generated und wählen:

Mark Directory As ->Generated Source Root

Sie sollten es blau und alle Pakete sehen werden unter (com ... etc) als Java-Code erkannt werden.

+0

Danke, aber ich bin auch auf der Suche nach einer Maven-basierten Lösung, die die gleiche Aufgabe erfüllen würde. – user2977259

+0

Verstehe das, aber intellij kennt nicht alle Plugins im maven-Plugin-Ökosystem (zum Beispiel Dinge wie 'cxf-codegen-plugin') und verlässt sich stattdessen auf Standardwerte. Manchmal kann es sogar klarer sein, eine nicht standardmäßige Konfiguration zu verwenden, in diesem Fall müssen Sie sie manuell einrichten .... vielleicht etwas nervig, aber da es sich um eine "einmalige" Konfiguration handelt, müssen Sie sie nur einmal konfigurieren pro Maven-Projekt :) – vikingsteve

+0

Ich bekomme, dass IntelliJ keine Standardkonfiguration ohne einige Benutzeraktion verstehen kann. Danke für deine Hilfe, Kumpel. – user2977259

Verwandte Themen