如何为具有外部依赖性的Java项目配置Maven构建?

时间:2013-02-19 12:56:42

标签: java maven build jar

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

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

我该如何构建POM?

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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>

答案 2 :(得分:0)

您可以使用maven-assembly-plugin从目录中的其他文件中创建.zip文件。我已经使用此方法为项目创建分发zip文件。 maven-assembly-plugin documentation中有几个示例。