使用依赖关系构建Maven

时间:2014-07-03 23:08:09

标签: java mysql maven

是否可以构建Maven项目,以便依赖项包含在构建过​​程的输出中。例如。如果我在我的项目中使用MySQL连接器,连接器及其依赖项的jar文件将成为输出的一部分,因此我可以将所有内容压缩并将其交给另一个人,项目将立即生效,不需要maven。 / p>

我在我的项目中使用了两个依赖项:jwbf和mysql-connector-javaHere是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>org.nif.neurolex</groupId>
    <artifactId>BulkChange</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>net.sourceforge</groupId>
            <artifactId>jwbf</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.31</version>
        </dependency>
    </dependencies>
    <build>
  <plugins>
     <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>org.nif.neurolex.MainClass</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
  </plugins>
</build>


</project>

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望将所有必需的依赖项包装在一起,以便构建目标是自包含的。

如果是,那么是的。查看Maven Assembly插件:http://maven.apache.org/plugins/maven-assembly-plugin/

由于输出可以是tar或zip,您甚至可以在包中包含脚本和目录(例如bin / * .sh来运行您的应用程序或工具)。可以在程序集描述符的构建时设置脚本的权限。