2014-07-03 189 views
1

是否可以构建Maven项目,以便将依赖关系包含在构建过​​程的输出中。例如。如果我在我的项目中使用MySQL连接器,则连接器及其依赖项的jar文件将成为输出的一部分,因此我可以压缩所有内容并将其提供给另一个人,并且项目将立即无需Maven。构建具有依赖关系的Maven

我用我的项目两个依赖:jwbf和MySQL连接器 - 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

是的,这是可能的。你是否在寻求帮助,使其发挥作用(在这种情况下,请提供你目前为止所做的以及未能发挥作用的内容),或者仅仅是为了让你在失败后不会陷入死胡同的大拇指这条路? – Tim

+0

如果你能指出我如何实现我的目标,那会很好。我在我的项目中使用了两个依赖项:jwbf和mysql-connector-java。 –

+0

我没有使用它,但[Maven Dependencies Plugin](http://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-project-dependencies.html)应该做你想做的。我只使用Maven使用WAR插件构建WAR,WAR插件在WAR中包含依赖关系,所以如果其他所有的都失败了,你可以构建一个WAR,然后从中提取依赖关系JAR,但这应该是最后的手段。 – Tim

回答

0

如果我理解正确的话,要与所有必要的依赖罐子包装你的代码一起构建目标是自成一体的。

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

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