【问题标题】:How do I get Intellij IDEA to call wsimport when I build my project?构建项目时如何让 Intellij IDEA 调用 wsimport?
【发布时间】:2014-03-18 17:53:56
【问题描述】:

在我的 pom 文件中,我有这个插件:

        <plugin>
            <groupId>org.jvnet.jax-ws-commons</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <version>2.1</version>
            <executions>
                <execution>
                    <id>Generate Web Service Client</id>
                    <goals>
                        <goal>wsimport</goal>
                    </goals>
                    <configuration>
                        <keep>true</keep>
                        <extension>true</extension>
                        <catalog>App-models/catalog.xml</catalog>
                        <packageName>com.app.client</packageName>
                        <wsdlUrls>
                            <wsdlUrl>${basedir}/xml-resources/web-service-references/App/wsdl/App.wsdl</wsdlUrl>
                        </wsdlUrls>
                    </configuration>
                </execution>
            </executions>
        </plugin>

如果我运行mvn compile,它的工作方式与预期的完全一样:它会生成客户端源。但是,如果我在 Intellij IDEA 中 build,它似乎会跳过这个插件/步骤。换句话说,如果我点击这个按钮,它会跳过 wsimport:

既然 IDEA 正在从 pom 文件中导入所有其他构建设置,为什么不使用这个呢?

如果我清理我的项目或更改 Web 服务,我的解决方法是手动调用 mvn compile,但 Intellij-IDEA 不会自动为我执行此操作非常烦人。这是一个错误,还是我可以打开一个设置来让它执行这一步?

【问题讨论】:

  • 最右边是否有一个 maven 按钮,您可以在其中调用不同的 maven 目标?试试看,我猜它应该正确执行maven。我没有使用最新版本的 IDEA,但那个按钮看起来更像是一个“刷新依赖项”。
  • @Magnilex 是的。在那里运行“编译”的唯一好处是我不必在控制台中添加标签。我真的不认为这甚至是一种解决方法。我用的是最新的。
  • @DanielKaplan 您是否能够弄清楚为什么 Idea 不会运行 wsimport 目标?我遇到了同样的问题。帮助我的是将配置块移到执行块之外。更多信息:stackoverflow.com/a/22282474/399435
  • @KarthicRaghupathi 感谢您的提示。不幸的是,我不在同一家公司工作。尝试重现此问题需要我付出很多努力。

标签: java maven intellij-idea


【解决方案1】:

您可以选择在制作、重建和/或运行/调试之前和/或之后执行任何模块的生命周期阶段和/或插件目标。右键单击 maven 工具窗口中的阶段或目标,然后选择所需的选项。您可以选择多个选项(一次一个)。在您的情况下,您可以选择模块/项目中的插件并右键单击 wsimport 目标并选择在 make 之前运行。

【讨论】:

  • 哇,这很有趣,但似乎有问题。当我在插件上执行此操作时,它会运行并给出以下消息:[INFO] No WSDLs are found to process, Specify atleast one of the following parameters: wsdlFiles, wsdlDirectory or wsdlUrls. 所以它似乎没有使用 pom.xml 文件的配置。如果我运行 mvn compile 这不会出现。有什么办法可以传入配置吗?否则我真的不能用这个。我可以每次都运行compile,但我认为这真的会减慢我的构建时间。
  • 还有其他问题。可能是您在 IntelliJ 中的 Maven 配置。检查它是否配置为使用与命令行相同的 Maven 版本和设置文件。
猜你喜欢
  • 2018-05-27
  • 1970-01-01
  • 2014-07-12
  • 1970-01-01
  • 1970-01-01
  • 2015-06-01
  • 2015-01-27
  • 2017-11-15
  • 2017-09-24
相关资源
最近更新 更多