Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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包装了一些有阴影的罐子_Java_Maven_Zip - Fatal编程技术网

Java Maven包装了一些有阴影的罐子

Java Maven包装了一些有阴影的罐子,java,maven,zip,Java,Maven,Zip,我目前正在运行一个多模块maven项目,在每个模块中我都会生成一个着色jar。这些罐子是分开运行的,因为它们代表三种不同的Spark作业 然而,为了让“运送”它们更容易,我想把所有这些带阴影的罐子都拉上拉链。我已经尝试使用汇编插件来实现这一点,但我正在努力 当我尝试使用模块集时,它似乎只抓住了未着色的jar 我已经能够使用文件集实现这一点,但它不是很优雅,而且它不能处理我的开发和生产版本改变着色jar的命名这一事实 我假设模块集仍然是正确的方法,但我不确定如何让它抓取我的着色罐子,并且只抓取着色

我目前正在运行一个多模块maven项目,在每个模块中我都会生成一个着色jar。这些罐子是分开运行的,因为它们代表三种不同的Spark作业

然而,为了让“运送”它们更容易,我想把所有这些带阴影的罐子都拉上拉链。我已经尝试使用汇编插件来实现这一点,但我正在努力

当我尝试使用模块集时,它似乎只抓住了未着色的jar

我已经能够使用文件集实现这一点,但它不是很优雅,而且它不能处理我的开发和生产版本改变着色jar的命名这一事实


我假设模块集仍然是正确的方法,但我不确定如何让它抓取我的着色罐子,并且只抓取着色罐子。有人能帮忙吗?

根据示例和以下内容,您需要这样的帮助:

1) 带有着色jar项目的父pom,然后是分发项目

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.greg</groupId>
    <artifactId>assembly-example</artifactId>
    <version>1.0-SNAPSHOT</version>

    <packaging>pom</packaging>

    <name>assembly-example</name>

    <modules>
        <module>shaded-jar-1</module>
        <module>shaded-jar-2</module>
        <module>distribution</module>
    </modules>

</project>
检查你的shade插件是否正常工作,在你的traget文件夹中,你应该有一个胖罐子和一个原始罐子,胖罐子就是“defaut”工件

greg@greg-XPS-13-9360:~/work/assembly-example$ ls -l shaded-jar-1/target/
total 520
drwxrwxr-x 3 greg greg   4096 Jun 15 10:37 classes
drwxrwxr-x 3 greg greg   4096 Jun 15 10:37 generated-sources
drwxrwxr-x 3 greg greg   4096 Jun 15 10:37 generated-test-sources
drwxrwxr-x 2 greg greg   4096 Jun 15 10:37 maven-archiver
drwxrwxr-x 3 greg greg   4096 Jun 15 10:37 maven-status
-rw-rw-r-- 1 greg greg   2418 Jun 15 10:37 original-shaded-jar-1-1.0-SNAPSHOT.jar
-rw-rw-r-- 1 greg greg 501520 Jun 15 10:37 shaded-jar-1-1.0-SNAPSHOT.jar
drwxrwxr-x 3 greg greg   4096 Jun 15 10:37 test-classes

在与现有模块(此处为
module1
module2
)相同级别的
发行版
模块中,使用
文件集
而不是
模块集
,创建
src/assembly/bin.xml


箱子
迪尔
拉链
假的
../module1/目标
*-shaded.jar
../module2/target
*-shaded.jar
分发项目的
pom.xml
与往常一样:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <artifactId>distribution</artifactId>
  <packaging>pom</packaging>
  <parent>
    <groupId>my.group</groupId>
    <artifactId>group-parent</artifactId>
    <version>1.0.0-SNAPSHOT</version>
  </parent>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.3.0</version>
        <executions>
          <execution>
            <id>distro-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <descriptors>
                <descriptor>src/assembly/bin.xml</descriptor>
              </descriptors>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</assembly>

4.0.0
分布
聚甲醛
我的团队
组父级
1.0.0-SNAPSHOT
org.apache.maven.plugins
maven汇编插件
3.3.0
发行版组装
包裹
单一的
src/assembly/bin.xml

你所说的“着色罐子”到底是什么意思?请显示您的pom文件和程序集描述符…这基本上是我一直在尝试的。我以前没有二进制文件部分。但即使添加了它,我也没有得到着色的jar。我得到的是普通的jar及其所有依赖项。如果对我有用,您可以得到我的示例,并尝试看看有什么不同。请参阅更新的答案,che检查您的shade插件是否正常工作。
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">

    <id>bin</id>

    <formats>
        <format>zip</format>
    </formats>

    <includeBaseDirectory>false</includeBaseDirectory>

    <moduleSets>
        <moduleSet>

            <!-- Enable access to all projects in the current multimodule build! -->
            <useAllReactorProjects>true</useAllReactorProjects>

            <!-- Now, select which projects to include in this module-set. -->
            <includes>
                <include>com.greg:shaded-jar-1</include>
                <include>com.greg:shaded-jar-2</include>
            </includes>
            <binaries>
                <outputDirectory>modules/maven-assembly-plugin</outputDirectory>
                <unpack>false</unpack>
            </binaries>
        </moduleSet>
    </moduleSets>

</assembly>
jar tvf distribution/target/distribution-1.0-SNAPSHOT-bin.zip 
     0 Fri Jun 15 10:37:32 BST 2018 modules/
     0 Fri Jun 15 10:37:32 BST 2018 modules/maven-assembly-plugin/
501520 Fri Jun 15 10:37:30 BST 2018 modules/maven-assembly-plugin/shaded-jar-1-1.0-SNAPSHOT.jar
501520 Fri Jun 15 10:37:30 BST 2018 modules/maven-assembly-plugin/shaded-jar-2-1.0-SNAPSHOT.jar
greg@greg-XPS-13-9360:~/work/assembly-example$ ls -l shaded-jar-1/target/
total 520
drwxrwxr-x 3 greg greg   4096 Jun 15 10:37 classes
drwxrwxr-x 3 greg greg   4096 Jun 15 10:37 generated-sources
drwxrwxr-x 3 greg greg   4096 Jun 15 10:37 generated-test-sources
drwxrwxr-x 2 greg greg   4096 Jun 15 10:37 maven-archiver
drwxrwxr-x 3 greg greg   4096 Jun 15 10:37 maven-status
-rw-rw-r-- 1 greg greg   2418 Jun 15 10:37 original-shaded-jar-1-1.0-SNAPSHOT.jar
-rw-rw-r-- 1 greg greg 501520 Jun 15 10:37 shaded-jar-1-1.0-SNAPSHOT.jar
drwxrwxr-x 3 greg greg   4096 Jun 15 10:37 test-classes
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <artifactId>distribution</artifactId>
  <packaging>pom</packaging>
  <parent>
    <groupId>my.group</groupId>
    <artifactId>group-parent</artifactId>
    <version>1.0.0-SNAPSHOT</version>
  </parent>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.3.0</version>
        <executions>
          <execution>
            <id>distro-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <descriptors>
                <descriptor>src/assembly/bin.xml</descriptor>
              </descriptors>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</assembly>