2013-07-16 32 views
0

我工作的一個Android項目,有一些核心的代碼(即具有一定的依賴性),我想版本,併到庫/神器(?)的容器,我可以拉進其他項目。我使用Maven構建,我的編輯器是IntelliJ。我從來沒有創建過一個.jar,但我認爲這就是我想要做的。行家創建POM

在的IntelliJ,我去了文件 - >項目結構 - >文物 - >+,但我迷路了。我不知道如何定義哪些源目錄和文件包含在jar中,我不確定是否需要在jar中包含它的依賴關係的實際jar包?或者在pom.xml文件中定義這些依賴關係並將pom.xml文件包含在jar中?

任何澄清,將不勝感激。

回答

1

Maven項目的依賴在其的pom.xml文件中定義的(基本上,從這裏改變的依賴關係是你在視覺上做的IntelliJ使用由文件 - >項目結構 - >工件)。 Maven採用的源文件是您的項目的src/main目錄中的文件。構建默認情況下,排除依賴完成的,因此,如果你在你的最終罐子to include them,你在你的POM文件來指定這個(插件):

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <executions> 
     <execution> 
     <phase>package</phase> 
     <goals> 
      <goal>attached</goal> 
     </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
    </configuration> 
    </plugin> 

之後,你必須執行mvn安裝命令讓你的罐子創建。你能做到運行Maven外部或從IDE(如果你有安裝some Maven plugin)和罐子將在項目的目標文件夾中創建。

+0

可以使Maven的只能看着在src /主目錄某些目錄/文件?我想在jar中的文件包含在Android應用程序中。我不想在jar中的整個Android應用程序,只是某些文件。 – David

+0

我想你正在維護一個Android項目的佈局。爲什麼你只要放一些文件?假設你放在該目錄中的所有內容都是有用的。如果不是,它的位置不正確。 –

+0

配置可以修改爲[包含/排除特定的包結構](例如http://maven.apache.org/plugins/maven-jxr-plugin/examples/include-exclude.html)。 <結構> ... ** /包括/ *。java的 ... Levity

0

中的IntelliJ IDEA的設置,當你建立一個使用IntelliJ IDEA的編譯器將只創建JAR。要讓Maven創建JAR並將其部署到Maven存儲庫,您需要使用maven assembly plugin。有一個predefined configuration用於創建具有依賴關係的jar。

Maven Shade Plugin還可以創建JAR和處理更高級的用例。但是,你可能要開始與組裝插件/