Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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
Maven can';不能从父pom部署_Maven_Jboss_Pom.xml_Wildfly_Multi Module - Fatal编程技术网

Maven can';不能从父pom部署

Maven can';不能从父pom部署,maven,jboss,pom.xml,wildfly,multi-module,Maven,Jboss,Pom.xml,Wildfly,Multi Module,我刚刚开始用Maven构建应用程序。我的方法之一是构建多模块web应用程序。使用Eclipse可以非常容易地构建这种应用程序。到目前为止一切正常。我失败的地方是部署。我使用Wildfly作为我的应用服务器,表示层的部署工作得很好。但当我想从父项目部署时,我会收到以下消息: Failed to execute goal org.wildfly.plugins:wildfly-maven-plugin:1.0.1.Final:deploy (default-cli) on project build

我刚刚开始用Maven构建应用程序。我的方法之一是构建多模块web应用程序。使用Eclipse可以非常容易地构建这种应用程序。到目前为止一切正常。我失败的地方是部署。我使用Wildfly作为我的应用服务器,表示层的部署工作得很好。但当我想从父项目部署时,我会收到以下消息:

Failed to execute goal org.wildfly.plugins:wildfly-maven-plugin:1.0.1.Final:deploy (default-cli) on project build: Error executing FORCE_DEPLOY: C:\Users\*****\Desktop\workspace\mvnexbook-examples-1.0\ch-multi\target\parent-0.8-SNAPSHOT.maven-project (No such file or directory)
这很令人困惑。部署不是从以前安装的.m2/repository文件夹中的文件进行的吗?我的父文件夹中是否需要目标目录

我的父pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                             http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.sonatype.mavenbook.multi</groupId>
        <artifactId>simple-parent</artifactId>
        <version>0.8-SNAPSHOT</version>
    </parent>

    <artifactId>simple-webapp</artifactId>
    <packaging>war</packaging>
    <name>Multi Chapter Simple Web Application Project</name>
    <dependencies>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-servlet_2.4_spec</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.sonatype.mavenbook.multi</groupId>
            <artifactId>simple-weather</artifactId>
            <version>${project.version}</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>simple-webapp</finalName>
        <plugins>

            <plugin>
                <groupId>org.wildfly.plugins</groupId>
                <artifactId>wildfly-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

4.0.0
org.sonatype.mavenbook.multi
单亲
0.8-1快照
简单网络应用
战争
多章节简单Web应用程序项目
org.apache.geronimo.specs
geronimo-servlet_2.4_规范
1.1.1
org.sonatype.mavenbook.multi
简单天气
${project.version}
简单网络应用
org.wildfly.plugins
wildfly maven插件
编辑:我刚用jetty试过。很好。为什么它不与Wildfly合作


EDIT2:我正在使用sonatype书籍中的简单父项目示例

您的应用程序EAR可能不在父项目构建文件夹中。它可能位于应用程序模块构建项目中。如果您查看,您将看到,targetDir默认为当前项目的构建目录。您可以提供另一个值。而filename参数指向文件名。它默认为${project.build.finalName}.${project.packaging},在您的例子中,它没有有意义的扩展

你可能想试试类似的东西

        <configuration>
            <targetDir>path</targetDir>
            <filename>filename</filename>
        </configuration> 

路径
文件名

为你的插件辩护。当然,您可以使用相对路径。您还可以尝试从APP project运行插件。

在父POM中,您需要将
true
添加到配置中。然后将您的WAR POM设置为
false

母体聚甲醛


org.wildfly.plugins
wildfly maven插件
1.0.1.最终版本
真的
战争POM


org.wildfly.plugins
wildfly maven插件
假的

父项目不需要是pom吗。试图改变它,但eclipse说:聚合器项目需要是pom。我只想提到,我使用的是sonatype中的简单父示例。我唯一改变的是我添加的wildfly maven插件。即使我改变了targetDir,我也不知道该指向哪里。是的,那是我的错。你说得对。因此,您可能必须从默认值重新定义文件名。您也可以尝试从应用程序项目运行插件。我将更新我的回答更改targetdir和文件名不起作用。我仍然得到同样的错误。为什么它与jetty而不是jboss一起工作?“从应用程序项目运行插件”是什么意思?好吧,如果没有意义,你应该忽略我的回答。我找不到你使用的原型。对我来说,通常有一些类似于父项目和子项目的东西——一个用于客户端(接口和实体),一个用于实现,一个用于war,一个用于组装。后者就是我所说的应用程序。对不起,我误导了你。请确保指向正确的文件。无论如何,谢谢您至少正在尝试。在网上找不到任何关于这个问题的类似信息,skip完成了任务。但我仍然感到困惑。首先,为什么我们需要跳过父pom。我认为通过构建父pom,每个模块都将自动部署,父模块将作为聚合器项目由wildfly插件处理。第二件事是,为什么任何处理这个话题的网站都没有提到这一点。也许我只是不明白。这只是插件的编写方式。我们应该将其更改为自动忽略pom包类型。@James R.Perkins如果没有war pom,我需要做什么?在父模块上安装期间,子模块打包为JAR,并由“maven war插件”添加到war中。如何部署这种类型的战争?您只需将
true
添加到您不想部署的模块中,或者只指定您想部署的模块中的插件。后者要求您在执行插件目标时位于该目录中。
<plugin>
    <groupId>org.wildfly.plugins</groupId>
    <artifactId>wildfly-maven-plugin</artifactId>
    <version>1.0.1.Final</version>
    <configuration>
        <skip>true</skip>
    </configuration>
</plugin>
<plugin>
    <groupId>org.wildfly.plugins</groupId>
    <artifactId>wildfly-maven-plugin</artifactId>
    <configuration>
        <skip>false</skip>
    </configuration>
</plugin>