2014-07-03 195 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來運行您的應用程序或工具)。腳本的權限可以在構建時在組件描述符中設置。