在我的maven Web项目中,cxf-codegen-plugin生成JAVA类并将它们放在文件夹中
${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
我还添加了插件build-helper-maven-plugin(添加另一个源文件夹),基于其他建议的SO答案,但在mvn clean之后它似乎不起作用(至少IntelliJ不识别它们)安装。
<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 :(得分:0)
因为它是非标准的&#34;路径,intellij不会自动获取它,但你可以像这样轻松修复它:
右键单击文件夹src\generated
,然后选择:
Mark Directory As
- &gt; Generated Source Root
你应该看到它变成蓝色,并且下面的所有包(com
...等)都应该被识别为java代码。