Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven JAR和其他文件的打包_Java_Maven_Ant_M2eclipse_Packaging - Fatal编程技术网

Java Maven JAR和其他文件的打包

Java Maven JAR和其他文件的打包,java,maven,ant,m2eclipse,packaging,Java,Maven,Ant,M2eclipse,Packaging,我是maven的新手,有一个项目有一些依赖项。现在Maven应该创建一个包含所有/src/main/java文件的jar文件,并将它们放在a目录中。我希望在构建过程中实现以下目标: 将所有依赖项jar放入文件夹B 将项目中的一些其他文件放入C 然后我需要它压缩和压缩 设置一些在gzip中设置的执行权限 最后,将两个存档推送到某个网络驱动器上 我已经使用ANT实现了这一点,但是我想对Maven做一个干净的端口,而不是调用大的ANT文件 有人能给我指出正确的方向吗?我应该使用哪些插件?首先,看看

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

  • 将所有依赖项jar放入文件夹
    B
  • 将项目中的一些其他文件放入
    C
  • 然后我需要它压缩压缩
  • 设置一些在gzip中设置的执行权限
  • 最后,将两个存档推送到某个网络驱动器上
我已经使用ANT实现了这一点,但是我想对Maven做一个干净的端口,而不是调用大的ANT文件


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

首先,看看Maven Assembly插件。它可能满足你所有的需要。我已经用过了,但只是一点点,所以我可以给你们指出你们可能需要的信息

您将为此插件创建XML配置文件,该文件称为程序集描述符,用于指导其操作

插件页面上提供了一些预定义的功能。至少有一个在zip中的源代码会帮助你

程序集说明已打开

  • 您可以复制dependencySets中的依赖项
  • 在文件集中,可以定义文件权限
  • 关于GZipping,您可以查看此主题
  • 如果程序集插件无法处理共享驱动器上的复制,请查看maven复制插件
如果Maven Assembly插件无法处理您需要的所有内容,您可以使用: -Maven复制插件-复制源文件 -Maven依赖插件-用于复制所有依赖JAR(目标复制插件的依赖项)
-Maven资源插件-如果资源是您需要复制的。

首先,请查看Maven汇编插件。它可能满足你所有的需要。我已经用过了,但只是一点点,所以我可以给你们指出你们可能需要的信息

您将为此插件创建XML配置文件,该文件称为程序集描述符,用于指导其操作

插件页面上提供了一些预定义的功能。至少有一个在zip中的源代码会帮助你

程序集说明已打开

  • 您可以复制dependencySets中的依赖项
  • 在文件集中,可以定义文件权限
  • 关于GZipping,您可以查看此主题
  • 如果程序集插件无法处理共享驱动器上的复制,请查看maven复制插件
如果Maven Assembly插件无法处理您需要的所有内容,您可以使用: -Maven复制插件-复制源文件 -Maven依赖插件-用于复制所有依赖JAR(目标复制插件的依赖项)
-Maven资源插件-如果资源是您需要复制的。

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

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

0/“mvn compile”将编译源文件夹下的java文件,src/main/java是默认文件夹,并将它们复制到目标/类中

1/“mvn包”将为每个包压缩一个罐子或一个war

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

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

4/“mvn安装”将把打包的JAR安装到本地maven存储库中

5/“mvn部署”将在您有权限的情况下将打包的JAR部署到远程maven存储库中


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

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

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

0/“mvn compile”将编译源文件夹下的java文件,src/main/java是默认文件夹,并将它们复制到目标/类中

1/“mvn包”将为每个包压缩一个罐子或一个war

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

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

4/“mvn安装”将把打包的JAR安装到本地maven存储库中

5/“mvn部署”将在您有权限的情况下将打包的JAR部署到远程maven存储库中


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

除了maven汇编插件(以及其他几种方法)之外,签出

Maven阴影插件

该插件提供了将工件打包到 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>

org.apache.maven.plugins
maven阴影插件
1.4
包裹
阴凉处
jar文件的主类

除了Maven Assembly插件(以及其他几种方法),签出

Maven阴影插件

该插件提供了将工件打包到 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>

org.apache.maven.plugins
maven阴影插件
1.4