`
koen
  • 浏览: 80783 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

解决Netbeans maven工程中wsimport的类无法"source insight"的问题

阅读更多

我最近工作中开始使用maven2作为build构建工具。开始很不适应,但是随着了解的深入,我逐渐感受到maven功能强大。今天还解决了一个在Netbeans maven工程中wsimport的类无法"source insight"的问题。

环境:
Netbeans 6.5
Maven 2.0.9

Netbeans安装了Maven相关的插件后可以比较完美地和maven集成。我们在使用中发现一个小的问题:我们的maven工程作为其他web service的client在执行wsimport之后生成了相关的类,编译没有问题。但是我们源代码中引用到相关类的地方Netbeans都会红线标出,表明无法找到相关的符号,而执行build实际上是可以编译的。而且我们无法做到敲个“.”就显示出web service中的所有方法。

问题出在Netbeans没有找到这些通过wsimport生成的class文件。在我们公司的另外一个maven工程中,同样的问题就没有出现,很奇怪。

我通过比较两个工程的pom.xml文件,发现它们存在一些区别。我们的pom.xml文件相关内容如下:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxws-maven-plugin</artifactId>
    <version>1.9</version>
    <executions>
        <execution>
            <goals>
                <goal>wsimport</goal>
            </goals>
            <configuration>
                <keep>true</keep>
                <wsdlUrls>
                    <wsdlUrl>...</wsdlUrl>
                </wsdlUrls>
            </configuration>
        </execution>
    </executions>
</plugin>
 



而另外一个工程的pom.xml如下:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxws-maven-plugin</artifactId>
    <version>1.11</version>
    <executions>
        <execution>
            <goals>
                <goal>wsimport</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <sourceDestDir>${project.build.directory}/generated-sources/wsimport</sourceDestDir>
        <resourceDestDir>${project.build.directory}/generated-sources/wsimport</resourceDestDir>
        <keep>true</keep>
        <wsdlUrls>
            <wsdlUrl>...</wsdlUrl>
        </wsdlUrls>
    </configuration>
</plugin>
 



两个文件的区别主要有3点:

1. “jaxws-maven-plugin”的版本;
2. "<configuration>"设置的位置;
3. 是否指定"<sourceDestDir>"和"<resourceDestDir>"设置。

通过逐一排除,发现最终的问题出在:

<sourceDestDir>${project.build.directory}/generated-sources/wsimport</sourceDestDir>
<resourceDestDir>${project.build.directory}/generated-sources/wsimport</resourceDestDir>

 

只要指定这两个路径Netbeans就可以找到生成的class文件,否则使用默认的路径就不行。

问题解决了,不过不清楚Netbeans到底是通过什么算法到哪些路径查找wsimport生成的class文件,有知道的高手请不吝赐教,呵呵!

2
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics