Maven:自定义程序集部署

时间:2014-04-03 10:51:20

标签: maven maven-assembly-plugin

由于需要大量定制,我确实开发了自己的Groovy插件,它创建了ZIP存档,可以100%准备部署(就像Maven程序集插件一样)。不过,如果我跑

mvn clean install ...

命令它创建一个程序集(单个ZIP文件),将它放到$ {project.build.directory}(... / target),然后就是它。

我如何告诉Maven,它现在是部署的一部分,我想部署这个ZIP文件?

2 个答案:

答案 0 :(得分:1)

您有两种选择:

使用buildhelper:attach-artifact

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.8</version>
    <executions>
      <execution>
        <id>attach-artifacts</id>
        <phase>package</phase>
        <goals>
          <goal>attach-artifact</goal>
        </goals>
        <configuration>
          <artifacts>
            <artifact>
              <file>some file</file>
              <type>extension of your file </type>
              <classifier>optional</classifier>
            </artifact>
            ...
          </artifacts>
        </configuration>
      </execution>
    </executions>
  </plugin>

或者(并且更好),您可以在自己的插件中包含必要的代码:

@Component
protected MavenProject project;

@Component
protected MavenProjectHelper projectHelper;

...

projectHelper.attachArtifact(project, "jar", resource.getClassifier(), targetArchive);

答案 1 :(得分:0)

实际上它也在Groovy中运行(从groovy-maven-plugin运行):

def helper =
        session.lookup("org.apache.maven.project.MavenProjectHelper");

helper.attachArtifact(project, "zip", _classifier, new File(_archiveFilename));

N.B:

_classifier和_archiveFilename都应该由您的代码声明和初始化。