Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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:创建包含站点的分发程序集(多模块)_Java_Maven_Maven Assembly Plugin_Multi Module_Maven Site Plugin - Fatal编程技术网

Java Maven:创建包含站点的分发程序集(多模块)

Java Maven:创建包含站点的分发程序集(多模块),java,maven,maven-assembly-plugin,multi-module,maven-site-plugin,Java,Maven,Maven Assembly Plugin,Multi Module,Maven Site Plugin,我正在使用maven assembly插件为我的多模块项目创建一个分发程序集(格式为“dir”)。该项目如下所示: + my-project +-- my-child-project-1 +-- my-child-project-2 子项目继承自my projectmyproject是一个聚合,即在-部分定义子项目 程序集包含工件、源等。我需要如何设置项目以包含站点 myproject站点到子模块的链接必须起作用。据我所知,这些链接在部署之前不会工作。因此,我想我必须首先分期部署站

我正在使用maven assembly插件为我的多模块项目创建一个分发程序集(格式为“dir”)。该项目如下所示:

+ my-project
   +-- my-child-project-1
   +-- my-child-project-2
子项目继承自
my project
myproject
是一个聚合,即在
-部分定义子项目

程序集包含工件、源等。我需要如何设置项目以包含站点

myproject
站点到子模块的链接必须起作用。据我所知,这些链接在部署之前不会工作。因此,我想我必须首先分期部署站点(?)。根据,只有在创建站点后才能进行登台:

此目标要求站点已经使用站点目标生成,例如通过调用mvn站点生成

我怎样才能做到这一点


有没有一种方法可以用一个
mvn包来组装所有东西?我的汇编描述符应该是什么样子的?

我不知道这是否是一个好的解决方案,但没有其他答案,因此我提出了以下建议:

1.将程序集内部版本移动到单独的子模块中 重要提示:我不知道这是否必要,但是如果在根项目中配置了程序集,我没有时间检查它是否也可以工作。否则,您必须在步骤2中使用不同的分类器在
myproject
中定义一个依赖项,以
myproject
本身,我认为这是行不通的。如果我错了,请随意编辑这个答案

+ my-project
   +-- my-child-project-1
   +-- my-child-project-2
   +-- my-project-build
2.使用构建项目中的分类器
site
定义所有模块的依赖项 4.在根项目中定义
site:jar
目标 默认情况下,此目标在
阶段执行,并生成“站点”附件(例如
my-parent-1.0.0-site.jar
),这些附件在步骤2中定义为依赖项,在步骤3中解包:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.4</version>
            <executions>
                <execution>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

org.apache.maven.plugins
maven站点插件
3.4
罐子
5.运行
mvn包
生成程序集
结果是程序集中的子目录“站点”包含完整的站点和工作链接。

我不知道这是否是一个好的解决方案,但没有其他答案,因此我提出了以下建议:

1.将程序集内部版本移动到单独的子模块中 重要提示:我不知道这是否必要,但是如果在根项目中配置了程序集,我没有时间检查它是否也可以工作。否则,您必须在步骤2中使用不同的分类器在
myproject
中定义一个依赖项,以
myproject
本身,我认为这是行不通的。如果我错了,请随意编辑这个答案

+ my-project
   +-- my-child-project-1
   +-- my-child-project-2
   +-- my-project-build
2.使用构建项目中的分类器
site
定义所有模块的依赖项 4.在根项目中定义
site:jar
目标 默认情况下,此目标在
阶段执行,并生成“站点”附件(例如
my-parent-1.0.0-site.jar
),这些附件在步骤2中定义为依赖项,在步骤3中解包:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.4</version>
            <executions>
                <execution>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

org.apache.maven.plugins
maven站点插件
3.4
罐子
5.运行
mvn包
生成程序集 结果是程序集中的一个子目录“站点”,包含具有工作链接的完整站点