Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven+;Eclipse编译失败,Maven在终端上编译正常_Java_Eclipse_Maven - Fatal编程技术网

Java Maven+;Eclipse编译失败,Maven在终端上编译正常

Java Maven+;Eclipse编译失败,Maven在终端上编译正常,java,eclipse,maven,Java,Eclipse,Maven,在试图从EclipseMars(4.5.1)内部编译Maven项目时,我遇到了一个问题 规格: Win 7 SP1 x64 JDK x64 1.8.0_72 Eclipse x64 4.5.1 Maven 3.3.9 我认为这是一个Eclipse Maven插件交互问题,因为我能够从终端执行以下目标: mvn clean compile mvn generate-sources mvn install 在Eclipse中,当我右键单击项目名称并选择Maven install作为执行目标

在试图从EclipseMars(4.5.1)内部编译Maven项目时,我遇到了一个问题

规格:

  • Win 7 SP1 x64
  • JDK x64 1.8.0_72
  • Eclipse x64 4.5.1
  • Maven 3.3.9
我认为这是一个Eclipse Maven插件交互问题,因为我能够从终端执行以下目标:

mvn clean compile

mvn generate-sources

mvn install
在Eclipse中,当我右键单击项目名称并选择Maven install作为执行目标时,我得到以下错误:

项目扫描

正在生成project-name-1.0-SNAPSHOT

[警告]com.sun.xml.ws:jaxws rt:jar:2.2.10的POM无效, 可传递依赖项(如果有)将不可用,请启用调试 登录以获取更多详细信息

[信息]--jaxws-maven插件:2.3:wsimport(默认)@project name

[警告]com.sun.xml.ws:jaxws-tools:jar:2.2.10的POM是 无效的可传递依赖项(如果有)将不可用, 有关详细信息,请启用调试日志记录

[信息]处理: 文件:/C:/project name/src/main/resources/file.wsdl[INFO] jaxws:wsimport参数:[-keep,-s, C:\project name\target\generated sources\wsimport,-d, C:\project name\target\classes,-encoding,UTF-8,-Xnocompile, “文件:/C:/project name/src/main/resources/file.wsdl”]

[警告]未能为生成父项目 ws:bundles:pom:2.2.10

[警告]未能为生成父项目 ws:jaxws工具:pom:2.2.10

[警告]的POM无效 ws:jaxws-tools:jar:2.2.10,可传递依赖项(如果 任何)将不可用,有关详细信息,请启用调试日志记录

[信息]生成失败

[错误]无法执行目标 jax-ws-commons:jaxws-maven插件:2.3:wsimport(默认)on 项目名称:目标的执行默认值 org.jvnet.jax-ws-commons:jaxws-maven插件:2.3:wsimport失败: 字符串索引超出范围:-1->[帮助1]

[错误]要查看错误的完整堆栈跟踪,请使用重新运行Maven e开关。[错误]使用-X开关重新运行Maven以启用完整 调试日志记录。[ERROR][ERROR]了解有关错误的详细信息 和可能的解决方案,请阅读以下文章:[错误] [帮助1]

但是,如果我从终端执行
mvn install
,目标就成功了! 我想我已经在Eclipse中安装了所有必要的Maven插件,pom.xml文件是正确的,因为通过终端一切似乎都正常。 希望有人能暗示这个问题

编辑:虽然
mvn安装
在Eclipse中失败,但如果我在Eclipse中使用目标
mvn安装-e
创建一个Maven构建配置,则问题不会发生。传递这面旗帜在某种程度上解决了这个问题

编辑:我粘贴了在Eclipse中触发问题的特定pom.xml部分(粗体文本是Eclipse用红色下划线的内容):


4.0.0
组名

我不能告诉您具体细节,但我已经看到了Eclipse工作/cmdline不工作的两种情况,反之亦然,特别是对于复杂的泛型和深度嵌套的接口

对我来说,Eclipse似乎正在进行一些自己的解析/字节码生成,可能是在工作表下面使用tools.jar,但我从来没有深入研究过(特别是因为我更喜欢IntelliJ,它使用本机maven和JVM,没有这个问题)


最终,您不能信任Eclipse,唯一可以确定的方法是生成cmdline(正如您所经历的那样)。

首先,如果它在控制台中运行良好,那么您就有一个项目可以在支持Maven项目的每个IDE中导入。这是个好消息

其次,检查控制台和Eclipse中所选的maven概要文件(存储库配置,…)是否相同

然后,您可以在settings.xml中检查配置(在.m2目录中)

也许前面的回答也会有所帮助:

签入
Maven>User Settings
User Settings
指向与Maven相同的归档文件


您是否尝试过使用embbedone?

我假设您必须重新组织您的
pom.xml

<dependencies>
  <dependency>
   <groupId>com.sun.xml.ws</groupId>
   <artifactId>jaxws-tools</artifactId>
   <version>2.2.10</version>
  </dependency>
</dependencies>

试试这个,希望能有所帮助。

你有没有从
Eclipse
中尝试
mvn clean compile
?你在Eclipse中的settings.xml是否与在命令行中使用的相同?你有没有检查Eclipse是否使用了你的maven版本而不是embded版本?@mcoimbra我检查了你的
pom.xml
,这有点奇怪。您必须关闭
。插件在
下,依赖性
下,我同意@Hohenheim。你能展示完整的pom吗?请检查原始问题的底部编辑,我认为它与你写的相符。你有什么建议去更深入地调查?放弃日食。对不起,这是一把瑞士军刀,有很多很多刀片,有些刀片不太好用。我在maven、java编译和git集成方面遇到了一些问题,我可以引导所有人远离它。我理解你的建议。然而,目前Eclipse是强制性的。Scott,您是否有任何额外的建议来开始深入研究Eclipse执行堆栈,以尝试了解哪些内容没有从Maven配置中正确读取?深入研究所有您想要的内容,有时问题可以解决,但有时无法解决。更新Eclipse插件,升级Eclipse,降级Eclipse,等等,有些事情可能会起作用,但是如果你被Eclipse困住了,那就是糟糕的gig。不幸的是,这是一个与Eclipse相关的问题。在终端中,Maven的行为符合预期。Hohenheim,我感谢你的建议,但我无法理解其中一些建议:-我的pom.xml中的标记没有缺失的's'
<dependencies>
  <dependency>
   <groupId>com.sun.xml.ws</groupId>
   <artifactId>jaxws-tools</artifactId>
   <version>2.2.10</version>
  </dependency>
</dependencies>
<plugins>
            <plugin>
                <groupId>org.jvnet.jax-ws-commons</groupId>
                <artifactId>jaxws-maven-plugin</artifactId>
                <version>2.3</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>wsimport</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!-- https://jax-ws-commons.java.net/jaxws-maven-plugin/wsimport-mojo.html -->
                    <wsdlDirectory>${wsdl.directory}</wsdlDirectory>
                    <wsdlFiles>
                        <wsdlFile>${wsdl.filename}</wsdlFile>
                    </wsdlFiles>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>com.sun.xml.ws</groupId>
                        <artifactId>jaxws-tools</artifactId>
                        <version>2.2.10</version>
                    </dependency>
                </dependencies>
            </plugin>
            <pluginS>
 <build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>jaxws-maven-plugin</artifactId>
                <version>1.12</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>wsimport</goal>
                        </goals>
                        <configuration>
                            <wsdlLocation>http://mysite/firstwsdl.asmx?wsdl</wsdlLocation>
                            <packageName>com</packageName>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </pluginManagement>
</build>