作为maven构建的一部分,我如何将maven复制fat jar作为目录?

时间:2014-05-28 18:47:33

标签: java maven jar copy

我使用maven-shade-plugin创建了一个包含所有依赖项的jar。生成的jar我想安装到基于环境变量的目录中。例如,$SITE_HOME/container之类的东西。另外,我想使用普通的maven命令调用命令来完成这项工作,例如:

%> mvn copy

%> mvn package:copy

或者其他什么,我不确定maven最适合什么,因为我对maven很新。

我的想法是,我只想要胖罐,我不想要项目的资源/或依赖项,或者除了生成的胖罐之外的任何东西。我怎么能用maven做这件事,希望不用编写我自己的maven插件。

1 个答案:

答案 0 :(得分:0)

如果我了解您的需求,您可以使用它:

http://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html

当您调用所选择的阶段时,您可以自动将其嵌入到Maven阶段中。

在这里你可以看到用法:

(复制工件)http://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html (复制依赖项)http://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-project-dependencies.html

    <project>
     [...]
     <build>
     <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.8</version>
        <executions>
          <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
              <overWriteReleases>false</overWriteReleases>
              <overWriteSnapshots>false</overWriteSnapshots>
              <overWriteIfNewer>true</overWriteIfNewer>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

我希望这有帮助..