罐子和其他文件的Maven包装



我是maven的新手,有一个有一些依赖关系的项目。现在,Maven应该创建一个包含所有/src/main/java文件的jar文件,并将它们放入A目录中。我想在构建过程中实现以下目标:

  • 将所有依赖关系jar放入文件夹B
  • 将项目中的一些其他文件放入C
  • 然后我需要gzippedzipped
  • 设置一些在gzip中设置的执行权限
  • 最后这两个归档文件推送到某个网络驱动器上

我已经使用了ANT,但我想为Maven做一个干净的端口,而不是调用大的ANT文件。

有人能给我指正确的方向吗?我应该使用哪些插件?

首先,看看Maven Assembly插件。它可能会满足你的所有需求。我用过它,但只是一点点,这样我就可以为您指出您可能需要的信息。

您可以为这个名为AssemblyDescriptor的插件创建XML配置文件,该文件指导其操作。

插件的页面上有一些预定义的可用内容。http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html至少在zip中有来源的那个会对你有所帮助。

程序集说明已打开http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html.

  • 您可以在dependencySet中复制依赖项
  • 在fileSet中,您可以定义文件权限
  • 对于GZipping,您可以查看以下主题使用Maven创建tar.gz档案
  • 如果Assembly插件无法处理共享驱动器上的复制,请查看maven复制插件

如果Maven Assembly插件无法处理您需要的所有东西,您可以使用:-Maven复制插件-http://evgeny-goldin.com/wiki/Maven-copy-plugin复制源文件-Maven依赖插件-http://maven.apache.org/plugins/maven-dependency-plugin/用于复制所有依赖项JAR(插件的目标副本依赖项)-Maven资源插件http://maven.apache.org/plugins/maven-resources-plugin/-如果您需要复制资源。

我不确定我是否知道您的所有要求。

Maven可以自己或使用插件完成以下操作:

0/"mvn-compile"将编译源文件夹下的java文件,src/main/java是默认文件夹,并将它们复制到target/classes 中

1/"mvn包"将根据您的包装压缩一个罐子或战争

2/maven资源插件可以做文件操作

3/maven汇编插件可以存档资源

4/"mvn-install"将打包的jar安装到本地maven存储库中

5/如果您拥有权限,"mvn-deploy"将把打包的jar部署到远程maven存储库中

当使用Maven时,将文件复制到其他项目不是一个明智的想法。在Project C pom.xml中添加maven依赖项更具maven风格。

除了Maven Assembly插件(以及其他一些方法),还可以签出Maven Shade插件。

Maven Shade插件

该插件提供了将工件打包到uber jar,包括它的依赖项,并对一些依赖项的包。

下面是一个示例maven插件配置,用于创建具有jar依赖项的项目的jar输出:

<build>
        <plugins>
            <plugin>
                <groupid>org.apache.maven.plugins</groupid>
                <artifactid>maven-shade-plugin</artifactid>
                <version>1.4</version>
                <executions>
                  <execution>
                    <phase>package</phase>
                    <goals>
                      <goal>shade</goal>
                    </goals>
                    <configuration>
                      <transformers>
                        <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                          <mainclass>Main Class of the jar file</mainclass>
                        </transformer>
                      </transformers>
                    </configuration>
                  </execution>
                </executions>
           </plugin>
        </plugins>
  </build>

相关内容

  • 没有找到相关文章

最新更新