当前位置: 首页 > 知识库问答 >
问题:

在多模块maven项目中创建程序集存档时出错

拓拔泉
2023-03-14
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.6:single (default-cli) on project app: Failed to create assembly: Error creating assembly archive My_Package: You must set at least one file. -> [Help 1]
app
  |
   pom.xml
   assembly.xml
   app.properties 
   child 1
       | 
       pom.xml src target
                   |
                     child1.war
   child 2
       |
       pom.xml src target
                   |
                     child2.war   
    <project>
        <groupId>com.karthik</groupId>
        <artifactId>parent</artifactId>
        <packaging>pom</packaging>
        <version>1.0-SNAPSHOT</version>
        <name>parent</name>

        <modules>
           <module>child 1</module>
           <module>child 2</module>
        </modules>
        <build>
           <pluginManagement>
               <plugins>
                  <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <finalName>APP</finalName>
                    <appendAssemblyId>false</appendAssemblyId>
                    <descriptors>
                    <descriptor>assembly.xml</descriptor>
                    </descriptors>
                </configuration>
                <executions>
                     <execution>
                    <id>make-bundles</id>
                    <goals>
                        <goal>single</goal>
                    </goals>
                    <phase>package</phase>
                      </execution>
                </executions>
            </plugin>
        </plugins>
  </pluginManagement>
</build>
</project>
<assembly
    xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
    <formats>
        <format>zip</format>
    </formats>
    <id>My_Package</id>
    <includeBaseDirectory>false</includeBaseDirectory>
    <moduleSets>
        <moduleSet>
            <useAllReactorProjects>true</useAllReactorProjects>
            <includes>
                <include>com.karthik:child1</include>
                <include>com.karthik:child2</include>
            </includes>
        </moduleSet>
    </moduleSets>
</assembly>

我认为我在程序集描述符中遗漏了导致此错误的某些内容。
1)请帮助解决此问题&帮助创建包含app.properties、child1.war和child2.war的zip(app.zip)?
2)何时需要使用 & 标记?

共有1个答案

桓修能
2023-03-14

最后我找到了解决办法

1)在父POM中添加一个单独的模块-组件。父POM

<project>
        <groupId>com.karthik</groupId>
        <artifactId>parent</artifactId>
        <packaging>pom</packaging>
        <version>1.0-SNAPSHOT</version>
        <name>parent</name>

        <modules>
           <module>child 1</module>
           <module>child 2</module>
           <module>distribution</module>
        </modules>
</project>

2)在分发模块中配置maven汇编插件

    <parent>
        <groupId>com.karthik</groupId>
        <artifactId>parent</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>distribution</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>Distribution</name>

    <build>
        <plugins>
            <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
                 <execution>
                <id>make-bundles</id>
                <goals>
                    <goal>single</goal>
                </goals>
                <phase>package</phase>
                <configuration>
                       <descriptors>
                        <descriptor>assembly.xml</descriptor>
                    </descriptors>
                </configuration>
            </execution>
        </executions>
    </plugin>
  </plugins>
</build>
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
  <id>distribution</id>
  <formats>
      <format>zip</format>
  </formats>
  <files>
        <file>
            <source>../Child1/target/child1.war</source>
        </file>
        <file>
            <source>../Child2/target/child2.war</source>
        </file>
        <file>
            <source>../app.properties</source>
        </file>
    </files>
</assembly>
 类似资料:
  • 我使用的是IntelliJ IDEA社区版2016.1.3。我正在尝试创建一个maven多模块项目。项目公司是父模块,项目员工和项目技能集是子模块。项目员工和技术人员将有包装作为战争,但项目公司有包装作为POM。 我无法在employee和Skillset下创建一个类。我如何创建一个多模块的项目而没有在父(公司)的src文件夹?

  • 嗨我在网上搜了一遍,看了一堆文章,所以问题和文档都找不到解决办法,这里是我的问题。 我有一个多模块maven项目,其中包含三个模块a、B和C,a和B独立,C依赖于a和B,当然我有一个父项目。我还设置了一个jenkins服务器来构建这些项目,以及一个nexus存储库。 如有任何帮助,不胜感激。谢谢!

  • 我使用的是Maven3.0.3,我有一个多模块Maven项目,我想用它来创建原型。结构如下: 最初的结构是: 运行cmd后, 在文件夹中生成的文件夹结构与上面相同(即),而不像 不知道我能做些什么让它工作吗?

  • 我在Eclipse中创建maven项目时遇到了一个问题。发生以下错误: 无法计算生成计划:Plugin org.apache.maven。plugins:maven-resources-plugin:2.6或其一个依赖项无法解析:读取org.apache.maven的工件描述符失败。plugins:maven-resources-plugin:jar:2.6 pluginorg.apache.ma

  • 我曾广泛使用过Maven 目前有5个不同的maven项目,每个项目都有一个不同的pom.xml。到目前为止,它们之间存在依赖关系,如果需要,每一个都指向 中的另一个。 现在我们不喜欢的是 当我们发布子projectA时,我们需要手动修改所有将projectA作为依赖项的项目以使用新版本。Saw Maven有一个版本插件,不知道这会有什么帮助。 作为解决方案,我希望在POM之间有一个更干净的组织,并

  • 我的项目结构如下: 是内的依赖项。 > 我应该在Jenkins中创建单独的作业来单独构建每个模块吗? 我为创建了一个作业,但出现以下错误(已将目标和操作设置为“清洁安装”: [INFO]扫描项目...[INFO] [INFO] ------------------------------------------------------------------------ [INFO]构建mypro