4

我正在尝试创建用于使用 maven 构建的自动化解决方案。我的愿景是构建一个 Maven,它从我的项目创建 JAR 文件,然后将所有依赖项作为 JAR 复制到“目标”文件夹中的某个子目录。

我不想使用 Shade 或 Assembly(所以我不想提取其他 JAR 的内容并将其包含在一个“超级 JAR”中,因为该项目更复杂,并且当我包含所有 JAR 时它会中断在一个文件中)。

我怎样才能做这样的构建POM?

4

3 回答 3

7

我认为这里没有任何问题。只需使用<packaging>jar</packaging> 默认情况下创建 maven pom.xml 它不应该将所有依赖库打包到您的 jar 中。

<plugin>
  <artifactId>maven-dependency-plugin</artifactId>
  <executions>
    <execution>
      <phase>install</phase>
      <goals>
        <goal>copy-dependencies</goal>
      </goals>
      <configuration>
        <outputDirectory>${project.build.directory}/lib</outputDirectory>
      </configuration>
    </execution>
  </executions>
</plugin>
于 2013-02-19T13:05:04.073 回答
2

与您的最新评论相关,使用此插件在清单中添加主类:

        <plugin>
            <!-- Build an executable JAR -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>com.test.YourMainClass</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
于 2013-02-19T13:31:15.647 回答
0

您可以使用 maven-assembly-plugin 从目录中的一系列其他文件中创建一个 .zip 文件。我已使用此方法为项目创建分发 zip 文件。maven-assembly-plugin 文档中提供了几个示例。

于 2013-02-19T13:06:21.800 回答