【问题标题】:Maven Assembly Plugin - install the created assemblyMaven Assembly Plugin - 安装创建的程序集
【发布时间】:2011-02-08 00:51:31
【问题描述】:

我有一个仅由文件组成的项目。我想将这些文件打包成一个 zip 并将它们存储在一个 Maven 存储库中。我已将程序集插件配置为构建 zip 文件,并且该部分工作正常,但我似乎无法弄清楚如何安装 zip 文件?

另外,如果我想在另一个工件中使用这个程序集,我该怎么做?我打算调用dependency:unpack,但我在存储库中没有要解压的工件。

如何将 zip 文件放在我的存储库中,以便我可以在另一个工件中重新使用它?

父pom

<build>
        <plugins>
            <plugin>
                <!--<groupId>org.apache.maven.plugins</groupId>-->
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.2-beta-5</version>
                <configuration>
                    <filters>
                        <filter></filter>
                    </filters>
                    <descriptors>
                        <descriptor>../packaging.xml</descriptor>
                    </descriptors>
                </configuration>
            </plugin>
        </plugins>
    </build>

子 POM

<parent>
    <groupId>com. ... .virtualHost</groupId>
    <artifactId>pom</artifactId>
    <version>0.0.1</version>
    <relativePath>../pom.xml</relativePath>
</parent>

<name>Virtual Host - ***</name>
<groupId>com. ... .virtualHost</groupId>
<artifactId>***</artifactId>
<version>0.0.1</version>
<packaging>pom</packaging>

我过滤掉了这个名字。这个 POM 正确吗?我只想将特定虚拟主机的文件捆绑在一起。

谢谢,

沃尔特

【问题讨论】:

    标签: maven-2 maven-assembly-plugin


    【解决方案1】:

    我已将程序集插件配置为构建 zip 文件,并且该部分工作正常,但我似乎无法弄清楚如何安装 zip 文件?

    那么,创建的程序集应该会自动附加到项目中,然后以installdeploy 为目标上传到存储库。你能展示你的pom吗?

    更新:使用您当前的配置,我认为程序集不会作为您的构建的一部分创建。您需要将single 目标绑定到生命周期阶段,通常是package

      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.2-beta-5</version>
        <configuration>
          <descriptors>
            <descriptor>../packaging.xml</descriptor>
          </descriptors>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id> <!-- this is used for inheritance merges -->
            <phase>package</phase> <!-- append to the packaging phase. -->
            <goals>
              <goal>single</goal> <!-- goals == mojos -->
            </goals>
          </execution>
        </executions>
      </plugin>
    

    现在应该可以正确安装/部署了。

    另外,如果我想在另一个工件中使用这个程序集,我该怎么做?我打算调用dependency:unpack,但我在存储库中没有要解压的工件。

    您可以声明对程序集的依赖项(在您的情况下使用正确的classifiertype),但由于依赖项是通过存储库解决的,因此您需要先解决第一步。然后,声明如下内容(分类器是程序集的 id):

    <dependency>
      <groupId>com. ... .virtualHost</groupId>
      <artifactId>***</artifactId>
      <version>0.0.1</version>
      <classifier>...</classifier>
      <type>zip</type>
    </dependency>
    

    【讨论】:

      【解决方案2】:

      我不知道这对你是否有用,但作为一个 JAR 文件基本上是一个 ZIP 文件加上 META-INF 信息,你可以将你的项目创建为一个没有源的 jar 并在 @ 添加 xip 计数987654322@无需任何插件配置。

      如果您希望您的内容位于不同的位置,您可以随时执行以下操作:

      <?xml version="1.0" encoding="UTF-8"?>
      <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.mycompany.myzip</groupId>
        <artifactId>myzip-artifact-id</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>jar</packaging>
        <build>
          <resources>
            <resource>
              <targetPath>.</targetPath>
              <filtering>false</filtering>
              <directory>${basedir}/zipcontent</directory>
              <includes>
                <include>**/*</include>
              </includes>
            </resource>
          </resources>
        </build>
      </project>
      

      如果您希望在存储库中安装并访问您的工件,则需要在部署阶段对其进行设置:

      http://maven.apache.org/plugins/maven-deploy-plugin/usage.html

      【讨论】:

        【解决方案3】:

        我认为程序集应该自动附加到构建中,但如果这不起作用,Maven Build Helper "attach-artifact" goal 会附加要安装在存储库中的指定文件。我使用这个插件来安装由 Ant 或 NSIS 等外部进程创建的文件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-09-05
          • 1970-01-01
          • 2017-08-29
          • 2010-12-04
          • 2012-03-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多