![](/img/trans.png)
[英]How to add multiple generated folder in build path using maven plugin
[英]Maven add generated folder(using maven plugin) as source folder , IntelliJ not recognizing
在我的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>
由於它是一個“非標准”路徑,intellij不會自動拾取它,但你可以像這樣輕松修復它:
右鍵單擊文件夾,在你的情況下src\\generated
並選擇:
Mark Directory As
- > Generated Source Root
您應該看到它變為藍色,並且下面的所有包( com
...等)應該被識別為java代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.