Eclipse Maven构建不包括对生成的jar文件的依赖关系

时间:2019-08-20 08:39:57

标签: java eclipse maven dependencies

就用maven,eclipse等进行编译而言,我不是一个非常有经验的Java用户。

我正在尝试构建一个具有一些maven依赖项的小型proyect,我的想法是将所有依赖项都包含在经过封装的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>
  <groupId>amgrd</groupId>
  <artifactId>testFlink</artifactId>
  <packaging>jar</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>testFlink</name>
  <description>testFlink</description>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <flink.version>0.10.0</flink.version>
    <jdk.version>1.8</jdk.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-java</artifactId>
        <version>${flink.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-streaming-java</artifactId>
        <version>${flink.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-clients</artifactId>
        <version>${flink.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-connector-kafka_2.11</artifactId>
        <version>0.10.0</version>
    </dependency>
</dependencies>

<build>
    <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>

            <configuration>
                <archive>
                    <manifestEntries>
                        <Main-Class>StreamingWordCount</Main-Class>
                    </manifestEntries>
                </archive>
          <descriptorRefs>
              <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>${jdk.version}</source>
                <target>${jdk.version}</target>
            </configuration>
        </plugin>
    </plugins>
</build>
</project>

我将其分为三部分,以标记应该配置项目以在生成的文件中包含jar的那段XML。

然后我显示项目的上下文菜单,然后单击Run as ...-> Maven->然后键入目标“包”。

生成的jar不包含依赖项,仅包含pom.xml,清单和我的源代码类。

提前谢谢

1 个答案:

答案 0 :(得分:0)

构建后,目标目录中应该有两个jar。一种只包含您的类,另一种包含所有类。后者的后缀为jar-with-dependencies.jar