【问题标题】:Maven release plugin jar-with-dependenciesMaven 发布插件 jar-with-dependencies
【发布时间】:2024-05-01 20:05:02
【问题描述】:

我的 pom 文件的 maven-assembly-plugin 部分是这样制作的:

        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.5.3</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.my.package.MyMainClass</mainClass>
                    </manifest>
                    <manifestEntries>
                        <Class-Path>.</Class-Path>
                    </manifestEntries>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
             <execution>
                 <id>make-assembly</id>
                 <goals>
                     <goal>single</goal>
                 </goals>
             </execution>
            </executions>
        </plugin>

和 maven-release-plugin 之类的:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
                <goals>deploy</goals>
                <checkModificationExcludeList>pom.xml</checkModificationExcludeList>
                <tagNameFormat>@{project.version}</tagNameFormat>
                <providerImplementations>
                    <git>jgit</git>
                </providerImplementations>                  
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.apache.maven.scm</groupId>
                    <artifactId>maven-scm-provider-jgit</artifactId>
                    <version>1.9.2</version>
                </dependency>
            </dependencies>
        </plugin>

我需要为 Archiva 发布一个带有依赖关系的 jar 文件,但是 release:perform 命令只上传没有任何依赖关系的 jar。我错过了什么?

【问题讨论】:

  • 打包阶段怎么样,但是它会产生您需要的工件吗?
  • 你能删除整个 POM 文件吗?
  • 是的,它适用于包组装:单个
  • 我刚刚找到了这个maven.apache.org/plugins/maven-assembly-plugin/usage.html 并尝试添加 jar-with-dependencies 但它无论如何都没有用

标签: java maven maven-assembly-plugin maven-release-plugin archiva


【解决方案1】:

好的..我必须回答我自己的问题。它只是缺少将执行阶段“打包”到程序集插件中。这是新的:

         <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.5.3</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.my.package.MyMainClass</mainClass>
                    </manifest>
                    <manifestEntries>
                        <Class-Path>.</Class-Path>
                    </manifestEntries>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
             <execution>
                 <id>make-assembly</id>
                 <goals>
                     <goal>single</goal>
                 </goals>
             </execution>

             <!-- was missing the following one -->
             <execution>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>

            </executions>
        </plugin>

感谢 Sergey 在打包阶段为我指出。

【讨论】: